1 2005-03-12 Jp Calderone <exarkun@twistedmatrix.com>
3 * twisted/scripts/mktap.py, twisted/scripts/twistd.py,
4 twisted/application/app.py: Changed UID and GID defaults for Process
5 to None. Changed mktap behavior to not specify UID and GID if they
6 are not given on the command line. Changed application startup to
7 not change UID or GID if they are not given. Changed twistd to add
8 UID and GID setting command line arguments.
10 2005-02-10 Jp Calderone <exarkun@twistedmatrix.com>
12 * twisted/internet/defer.py: DeferredLock, DeferredSemaphore, and
15 * twisted/test/test_defer.py: Tests for above mentioned three new
18 2004-11-27 Brian Warner <warner@lothar.com>
20 * util.py (SignalStateManager.save): don't save signal handlers
21 for SIGKILL and SIGSTOP, since we can't set them anyway.
22 Python2.4c1 raises an error when you try.
24 2004-11-07 Brian Warner <warner@lothar.com>
26 * twisted/test/test_internet.py: correctly check for SSL support.
27 Improve timeout for testCallLater and testGetDelayedCalls to avoid
28 spurious failures on slow test systems. Close sockets in
29 PortStringification to fix trial warnings.
31 * twisted/internet/ssl.py: add a comment describing the correct
32 way to import twisted.internet.ssl (since it might partially fail
33 if OpenSSL is not available)
35 2004-11-06 Jp Calderone <exarkun@twistedmatrix.com>
37 * twisted/trial/assertions.py: assertRaises/failUnlessRaises now
38 returns the caught exception to allow tests to inspect the contents.
40 2004-11-02 Brian Warner <warner@lothar.com>
42 * loopback.py (loopbackTCP): use trial's spinWhile and spinUntil
43 primitives instead of doing reactor.iterate() ourselves. Make sure
44 to wait for everything before finishing.
46 2004-10-26 Cory Dodt <corydodt@twistedmatrix.com>
48 * twisted/python/{which,process}.py,
49 twisted/test/{test_wprocess,wprocess_for_testing}.py,
50 twisted/internet/{default,error,wprocess,process}.py: back out
51 wprocess due to test failures in wprocess and new trial. Resolves
54 2004-10-24 Itamar Shtull-Trauring <itamar@itamarst.org>
56 * TCP: Half-close of write and read for TCP connections, including
57 protocol notification for protocols that implement
58 IHalfCloseableProtocol.
60 2004-10-07 Jp Calderone <exarkun@twistedmatrix.com>
62 * Transports: Add a maximum to the number of bytes that will be
63 held in the write buffer even after they have been sent. This
64 puts a maximum on the cost of writing faster than the network
67 2004-10-06 Itamar Shtull-Trauring <itamar@itamarst.org>
69 * Transports: New TCP/SSL/etc. buffering algorithm. All writes are
70 now stored until next iteration before being written, and many
71 small writes are not expensive.
73 2004-09-30 Brian Warner <warner@lothar.com>
75 * glib2reactor.py: new reactor that uses just glib2, not gtk2.
76 This one doesn't require a DISPLAY, and cannot be used for GUI
79 * gtk2reactor.py: import gobject *after* pygtk.require, to make
80 sure we get the same versions of both
82 2004-09-18 Christopher Armstrong <radix@twistedmatrix.com>
84 * twisted/internet/defer.py: Add deferredGenerator and
85 waitForDeferred. This lets you write kinda-sorta
86 synchronous-looking code that uses Deferreds. See the
87 waitForDeferred docstring.
89 2004-09-11 Cory Dodt <corydodt@twistedmatrix.com>
91 * twisted/python/{which,process}.py,
92 twisted/test/{test_wprocess,wprocess_for_testing}.py,
93 twisted/internet/{default,error,wprocess,process}.py: merge the
94 "wprocess" branch which uses Trent Mick's process.py to enable
95 spawnProcess in the default reactor on Windows
97 2004-08-24 Brian Warner <warner@lothar.com>
99 * twisted/application/internet.py (TimerService): make it possible
100 to restart a stopped TimerService. Threw out a lot of (apparently)
101 unnecessary code in the process. Make sure it gets pickled in a
102 not-running state too.
103 * twisted/test/test_application.py (TestInternet2.testTimer): test
104 the changes, and update the way the test peeks inside TimerService
106 2004-07-18 Paul Swartz <z3p@twistedmatrix.com>
108 * twisted/internet/utils.py: By passing errortoo=1, you can get
109 stderr from getProcessOutput
111 2004-07-18 Paul Swartz <z3p@twistedmatrix.com>
113 * twisted/conch/unix.py: if the utmp module is available, record
114 user logins/logouts into utmp/wtmp.
116 2004-06-25 Paul Swartz <z3p@twistedmatrix.com>
117 * twisted/conch/checkers.py: Use functionality of crypt module instead
118 of an external module.
120 2004-06-25 Jp Calderone <exarkun@twistedmatrix.com>
122 * twisted/spread/banana.py: Disabled automatic import and use of
123 cBanana. PB will now use the pure-Python version of banana unless
124 cBanana is manually installed by the application.
126 2004-06-12 Paul Swartz <z3p@twistedmatrix.com>
128 * twisted/conch/client: added -r flag to reconnect to the server if
129 the connection is lost (closes 623).
131 2004-06-06 Dave Peticolas <dave@krondo.com>
133 * twisted/test/test_enterprise.py: test open callback and
136 * twisted/enterprise/adbapi.py: add open callback support
137 and disconnect() method. Issue 480.
139 2004-06-05 Dave Peticolas <dave@krondo.com>
141 * twisted/enterprise/adbapi.py: Don't log sql exceptions (issue 631).
142 Remove deprecated api.
144 * twisted/news/database.py: do not use adbapi.Augmentation
146 2004-06-03 Itamar Shtull-Trauring <itamar@itamarst.org>
148 * twisted/internet/gtk2reactor.py: The choice between glib event
149 loop and gtk+ event loop is determined by argument at reactor
152 2004-05-31 Dave Peticolas <dave@krondo.com>
154 * twisted/enterprise/sqlreflector.py: don't use Augmentation
156 * twisted/enterprise/populate.sql: remove
158 * twisted/enterprise/schema.sql: remove
160 * twisted/enterprise/row.py: remove deprecated classes
162 * twisted/enterprise/dbgadgets.py: remove
164 * twisted/enterprise/dbcred.py: remove
166 * twisted/test/test_enterprise.py: Fix Firebird test case.
168 2004-05-21 Itamar Shtull-Trauring <itamar@itamarst.org>
170 * twisted/internet/gtk2reactor.py: use glib event loop directly
171 instead of gtk2's event loop if possible.
173 2004-05-04 Jp Calderone <exarkun@twistedmatrix.com>
175 * twisted.news, twisted.protocols.nntp: Moved back into trunk
176 pending an alternate split-up strategy.
178 2004-05-04 Itamar Shtull-Trauring <itamar@itamarst.org>
180 * twisted.internet.reactor.listenUDP: transport.write() on UDP
181 ports no longer supports unresolved hostnames (though deprecated
182 support still exists).
184 2004-4-18 Christopher Armstrong <radix@twistedmatrix.com>
186 * twisted/lore/nevowlore.py, twisted/plugins.tml: Added Nevow
187 support for lore. See docstring of twisted.lore.nevowlore.
189 2004-4-18 Christopher Armstrong <radix@twistedmatrix.com>
191 * twisted.news, twisted.protocols.nntp: Moved into a third party
192 package. Deprecated backwards-compatibility exists by importing
193 from the third-party package if available.
195 2004-4-11 Paul Swartz <z3p@twistedmatrix.com>
197 * twisted.conch: refactored the Conch client to separate connecting
198 to a server from user authentication from client-specific actions.
200 2004-03-23 Andrew Bennetts <spiv@twistedmatrix.com>
202 * twisted.protocols.http: Small optimisation to HTTP implementation.
203 This changes return value of toChunk to a tuple of strings, rather
206 2004-4-3 Paul Swartz <z3p@twistedmatrix.com>
208 * twisted.python.lockfile: added lockfile support, based on
210 * twisted.internet.unix.Port: added a wantPID kwarg. If True, it
211 checks for and gets a lockfile for the UNIX socket.
212 * twisted.internet.unix.Connector: added a checkPID kwarg. If True,
213 it checks that the lockfile for the socket is current.
215 2004-03-23 Pavel Pergamenshchik <pp64@cornell.edu>
217 * twisted.internet.iocp: Support for Windows IO Completion Ports.
218 Use with "--reactor=iocp" parameter to twistd or trial.
220 2004-03-20 Itamar Shtull-Trauring <itamar@itamarst.org>
222 * twisted.internet: getHost(), getPeer(), buildProtocol() etc.
223 all use address objects from twisted.internet.address.
225 * twisted/internet/udp.py: Connected UDP support is now part of
226 the standard listenUDP-resulting UDP transport using a connect()
229 2004-03-18 Jp Calderone <exarkun@twistedmatrix.com>
231 * twisted/application/internet.py: Changed TimerService to
232 log errors from the function it calls.
234 * twisted/application/test_application.py: Added test case
235 for logging of exceptions from functions TimerService calls.
237 2004-03-07 Christopher Armstrong <radix@twistedmatrix.com>
239 * .: Releasing Twisted 1.2.1alpha1.
241 2004-03-03 Christopher Armstrong <radix@twistedmatrix.com>
243 * twisted/web/server.py: Fix UnsupportedMethod so that users'
244 allowedMethods are actually honored.
246 * twisted/web/resource.py: (Resource.render) If the resource has
247 an 'allowedMethods' attribute, pass it to UnsupportedMethod.
249 2004-02-27 Andrew Bennetts <spiv@twistedmatrix.com>
251 * twisted/internet/defer.py: Add consumeErrors flag to DeferredList.
252 This takes care of the most common use-case for the recently
253 deprecated addDeferred method.
255 2004-02-28 Dave Peticolas <dave@krondo.com>
257 * setup.py: install tap2rpm as a bin script
259 * twisted/test/test_enterprise.py: Test Firebird db. Fix typos.
261 2004-02-27 Andrew Bennetts <spiv@twistedmatrix.com>
263 * twisted/internet/defer.py: Deprecated DeferredList.addDeferred. It
264 isn't as useful as it looks, and can have surprising behaviour.
266 2004-02-25 Christopher Armstrong <radix@twistedmatrix.com>
268 * twisted/protocols/dns.py: Fixed a bug in TCP support: It
269 wouldn't process any messages after the first, causing AXFR
270 queries to be totally broken (in addition to other problems in the
271 implementation of AXFR).
273 * twisted/names/client.py: Fixed the AXFR client (lookupZone),
274 thanks to DJB's wonderful documentation of the horribleness of
277 2004-02-25 Christopher Armstrong <radix@twistedmatrix.com>
279 * .: Releasing Twisted 1.2.0 final! Same as rc3.
281 2004-02-24 Christopher Armstrong <radix@twistedmatrix.com>
283 * .: Releasing Twisted 1.2.0rc3 (same as rc2, with cBanana bug
286 2004-02-19 Kevin Turner <acapnotic@twistedmatrix.com>
288 * twisted/application/service.py (IService.disownServiceParent)
289 (IServiceCollection.removeService): These may return Deferred if they
290 have asynchronous side effects.
292 2004-02-18 Christopher Armstrong <radix@twistedmatrix.com>
294 * .: Releasing Twisted 1.2.0rc2. Brown-paper bag release bug.
296 2004-02-17 Christopher Armstrong <radix@twistedmatrix.com>
298 * .: Releasing Twisted 1.2.0rc1.
300 2004-02-13 Brian Warner <warner@lothar.com>
302 * doc/howto/faq.xhtml: add entry on transport.getPeer()
304 2004-01-31 Christopher Armstrong <radix@twistedmatrix.com>
306 * .: Releasing Twisted 1.1.2alpha2 (problem with Debian packaging).
308 2004-01-30 Christopher Armstrong <radix@twistedmatrix.com>
310 * .: Releasing Twisted 1.1.2alpha1.
312 2004-01-23 Christopher Armstrong <radix@twistedmatrix.com>
314 * twisted/scripts/trial.py: trial now supports a --coverage
315 option, requiring Python 2.3.3. Give it a directory name (relative
316 to _trial_temp) to put code-coverage info in. It uses the stdlib
319 2004-01-21 Pavel Pergamenshchik <pp64@cornell.edu>
321 * twisted/protocols/stateful.py: A new way to write protocols!
322 Current state is encoded as a pair (func, len). As soon as len
323 of data arrives, func is called with that amount of data. New
324 state is returned from func.
325 * twisted/test/test_stateful.py: Tests and an example, an
326 Int32StringReceiver implementation.
328 2004-01-18 Christopher Armstrong <radix@twistedmatrix.com>
330 * twisted/web/resource.py: The default render method of Resource
331 now supports delegating to methods of the form "render_*" where
332 "*" is the HTTP method that was used to make the
333 request. Examples: request_GET, request_HEAD, request_CONNECT, and
334 so on. This won't break any existing code - when people want to
335 use the better API, they can stop overriding 'render' and instead
336 override individual render_* methods.
338 2004-01-13 Itamar Shtull-Trauring <itamar@itamarst.org>
340 * twisted/web/soap.py: Beginning of client SOAP support.
342 2004-01-10 Andrew Bennetts <spiv@twistedmatrix.com>
344 * twisted/protocols/ftp.py: Added support for partial downloads
345 and uploads to FTPClient (see the offset parameter of retrieveFile).
347 2004-01-09 Jp Calderone <exarkun@twistedmatrix.com>
349 * twisted/protocols/imap4.py: Add IMessageCopier interface to allow
350 for optimized implementations of message copying.
352 2004-01-06 Brian Warner <warner@lothar.com>
354 * twisted/internet/default.py (PosixReactorBase.spawnProcess): add
355 a 'childFDs' argument which allows the child's file descriptors to
356 be arbitrarily mapped to parent FDs or pipes. This allows you to
357 set up additional pipes into the child (say for a GPG passphrase
358 or separate status information).
360 * twisted/internet/process.py (Process): add childFDs, split out
361 ProcessReader and ProcessWriter (so that Process itself is no
362 longer also reading stdout).
364 * twisted/internet/protocol.py (ProcessProtocol): add new
365 childDataReceived and childConnectionLost methods, which default
366 to invoking the old methods for backwards compatibility
368 * twisted/test/test_process.py (FDTest): add test for childFDs
369 mapping. Also add timeouts to most tests, and make all
370 reactor.iterate() loops wait 10ms between iterations to avoid
371 spamming the CPU quite so badly. Closes issue435.
372 * twisted/test/process_fds.py: new child process for FDTest
374 * doc/howto/process.xhtml: document childFDs argument, add example
376 2004-01-04 Itamar Shtull-Trauring <itamar@itamarst.org>
378 * twisted/internet/gladereactor.py: logs all network traffic for
379 TCP/SSL/Unix sockets, allowing traffic to be displayed.
381 2004-01-04 Dave Peticolas <dave@krondo.com>
383 * twisted/test/test_enterprise.py: test deleting rows not in cache
385 * twisted/enterprise/reflector.py: deleted rows don't have to be
388 * doc/examples/row_example.py: use KeyFactory from row_util
390 * doc/examples/row_util.py: add KeyFactory
392 2003-12-31 Brian Warner <warner@lothar.com>
394 * twisted/internet/defer.py (Deferred.setTimeout): if the Deferred
395 has already been called, don't bother with the timeout. This
396 happens when trial.util.deferredResult is used with a timeout
397 argument and the Deferred was created by defer.succeed().
398 * twisted/test/test_defer.py
399 (DeferredTestCase.testImmediateSuccess2): test for same
401 2003-12-31 Jp Calderone <exarkun@twistedmatrix.com>
403 * twisted/protocols/ident.py: Client and server ident implementation
404 * twisted/test/test_ident.py: Test cases for ident protocol
406 2003-12-29 Jp Calderone <exarkun@twistedmatrix.com>
408 * twisted/spread/pb.py: Changed PBServerFactory to use "protocol"
409 instance attribute for Broker creation.
411 2003-12-26 Itamar Shtull-Trauring <itamar@itamarst.org>
413 * twisted/web/server.py: display of tracebacks on web pages can
414 now be disabled by setting displayTracebacks to False on the Site
415 or by using applicable tap option. Woven does not yet use
418 2003-12-23 Itamar Shtull-Trauring <itamar@itamarst.org>
420 * twisted/web/client.py: if Host header is passed, use that
421 instead of extracting from request URL.
423 2003-12-14 Dave Peticolas <dave@krondo.com>
425 * twisted/test/test_enterprise.py: Frederico Di Gregorio's patch
426 adding a psycopg test case.
428 2003-12-09 Christopher Armstrong <radix@twistedmatrix.com>
430 * .: Releasing Twisted 1.1.1, based on rc4.
432 2003-12-06 Itamar Shtull-Trauring <itamar@itamarst.org>
434 * twisted/internet/wxreactor.py: Added experimental wxPython reactor,
435 which seems to work better than the twisted.internet.wxsupport.
437 2003-12-05 Paul Swartz <z3p@twistedmatrix.com>
439 * twisted/conch/ssh/filetransfer.py, session.py: added SFTPv3 support
442 2003-12-04 Christopher Armstrong <radix@twistedmatrix.com>
444 * .: Releasing Twisted 1.1.1rc4, based on rc2. rc3 never happened!
446 2003-12-04 Brian Warner <warner@lothar.com>
448 * twisted/persisted/sob.py (Persistent): fix misspelled class name,
449 add compatibility binding to "Persistant" (sic).
451 * twisted/test/test_sob.py: use Persistent
452 * twisted/application/service.py (Application): use Persistent
454 2003-12-03 Jp Calderone <exarkun@twistedmatrix.com>
456 * twisted/protocols/imap4.py: Added support for the
457 IDLE command (RFC 2177).
459 2003-12-03 Jp Calderone <exarkun@twistedmatrix.com>
461 * twisted/python/log.py: Added exception handling to
462 log publishing code. Observers which raise exceptions
463 will now be removed from the observer list.
465 2003-12-02 Jp Calderone <exarkun@twistedmatrix.com>
467 * .: Releasing Twisted 1.1.1rc3.
469 2003-12-01 Christopher Armstrong <radix@twistedmatrix.com>
471 * .: Releasing Twisted 1.1.1rc2 (from CVS HEAD).
473 2003-12-01 Jp Calderone <exarkun@twistedmatrix.com>
475 * twisted/python/runtime.py: Added seconds method to Platform
478 * twisted/internet/base.py, twisted/internet/task.py: Changed
479 use of time.time() to use Platform.seconds() instead.
481 2003-11-24 Jp Calderone <exarkun@twistedmatrix.com>
483 * twisted/internet/abstract.py: Changed FileDescriptor's
484 registerProducer method to immediately call the given producer's
485 stopProducing method if the FileDescriptor is in the process of
486 or has finished disconnecting.
488 2003-11-24 Jp Calderone <exarkun@twistedmatrix.com>
490 * twisted/protocols/imap4.py: Fix incorrect behavior of closing the
491 mailbox in response to an EXPUNGE command.
493 2003-11-21 Jp Calderone <exarkun@twistedmatrix.com>
495 * twisted/trial/runner.py: Added missing calls to setUpClass and
496 tearDownClass in SingletonRunner.
498 2003-11-21 Christopher Armstrong <radix@twistedmatrix.com>
500 * .: Releasing Twisted 1.1.1rc1.
502 2003-11-20 Jp Calderone <exarkun@twistedmatrix.com>
504 * twisted/protocols/imap4.py: Fixed incorrect generation of
505 INTERNALDATE information.
507 2003-11-20 Jp Calderone <exarkun@twistedmatrix.com>
509 * twisted/internet/abstract.py: Added an assert to
510 FileDescriptor.resumeProducing to prevent it from being
511 called when the transport is no longer connected.
513 2003-11-20 Jp Calderone <exarkun@twistedmatrix.com>
515 * twisted/internet/tasks.py: LoopingCall added.
517 2003-10-14 Itamar Shtull-Trauring <itamar@itamarst.org>
519 * twisted/internet/tasks.py: Deprecated scheduling API removed.
521 2003-11-18 Jonathan Simms <jonathan@embassynetworks.com>
523 * twisted/protocols/ftp.py: refactored to add cred support,
524 pipelining, security.
525 * twisted/test/test_ftp.py: tests for the new ftp
527 2003-11-18 Sam Jordan <sam@twistedmatrix.com>
529 * twisted/protocols/msn.py: support for MSNP8
530 * doc/examples/msn_example.py: small msn example
532 2003-11-13 Paul Swartz <z3p@twistedmatrix.com>
534 * twisted/conch/ssh/agent.py: support for the OpenSSH agent protocol
535 * twisted/conch/ssh/connection.py: fix broken channel retrieval code
536 * twisted/conch/ssh/userauth.py: refactoring to allow use of the agent
537 * twisted/conch/ssj/transport.py: fix intermittent test failure
538 * twisted/internet/protocol.py: add UNIX socket support to
540 * twisted/scripts/conch.py: use the key agent if available, also
543 2003-11-07 Brian Warner <warner@lothar.com>
545 * twisted/application/app.py (getApplication): provide a more
546 constructive error message when a .tac file doesn't define
547 'application'. Closes issue387.
549 2003-11-01 Paul Swartz <z3p@twistedmatrix.com>
551 * twisted/conch/ssh/common.py: use GMPy for faster math if it's
554 2003-10-24 Christopher Armstrong <radix@twistedmatrix.com>
556 * .: Releasing Twisted 1.1.0 final. Same codebase as rc2.
558 2003-10-24 Brian Warner <warner@lothar.com>
560 * doc/howto/test-standard.xhtml: Add section on how to clean up.
562 * twisted/test/test_conch.py: improve post-test cleanup. Addresses
563 problems seen in issue343.
565 * twisted/internet/base.py (ReactorBase.callLater): prefix
566 "internal" parameter names with an underscore, to avoid colliding
567 with named parameters in the user's callback invocation. Closes
569 (ReactorBase.addSystemEventTrigger)
570 (ReactorBase.callWhenRunning)
571 (ReactorBase.callInThread): same
572 * doc/howto/coding-standard.xhtml (Callback Arguments): explain why
574 2003-10-22 Christopher Armstrong <radix@twistedmatrix.com>
576 * .: Releasing Twisted 1.1.0rc2.
578 2003-10-21 Andrew Bennetts <spiv@twistedmatrix.com>
580 * twisted/lore/tree.py, twisted/lore/lint.py,
581 doc/howto/stylesheet.css: add a plain 'listing' class, for file
582 listings that aren't python source or HTML. This has slightly changed
583 the classes in the generated HTML, so custom stylesheets may need
586 2003-10-16 Christopher Armstrong <radix@twistedmatrix.com>
588 * .: Releasing Twisted 1.1.0alpha3.
590 2003-10-16 Brian Warner <warner@lothar.com>
592 * doc/howto/pb-cred.xhtml: update for newcred. Closes issue172.
594 2003-10-15 Brian Warner <warner@lothar.com>
596 * twisted/internet/base.py: add optional debug code, enabled with
597 base.DelayedCall.debug=True . If active, the call stack which
598 invoked reactor.callLater will be recorded in each DelayedCall. If
599 an exception happens when the timer function is run, the creator
600 stack will be logged in addition to the usual log.deferr().
602 * twisted/internet/defer.py: add some optional debug code, enabled
603 with defer.Deferred.debug=True . If active, it will record a stack
604 trace when the Deferred is created, and another when it is first
605 invoked. AlreadyCalledErrors will be given these two stack traces,
606 making it slightly easier to find the source of the problem.
608 2003-10-15 Christopher Armstrong <radix@twistedmatrix.com>
610 * .: Releasing Twisted 1.1.0alpha2 (alpha1 was dead in the water).
612 2003-10-15 Brian Warner <warner@lothar.com>
614 * setup.py: remove cReactor/ to the sandbox. Closes issue318.
616 2003-10-14 Itamar Shtull-Trauring <itamar@itamarst.org>
618 * twisted/web/static.py: registry no longer has support for
619 getting services based on their interfaces.
621 2003-10-14 Christopher Armstrong <radix@twistedmatrix.com>
623 * .: Releasing Twisted 1.1.0alpha1.
625 2003-10-13 Bob Ippolito <bob@redivi.com>
627 * doc/howto/choosing-reactor.xhtml:
628 Added cfreactor/Cocoa information.
630 * doc/examples/cocoaDemo:
631 Removed, replaced by doc/examples/Cocoa cfreactor demos.
633 * doc/examples/Cocoa:
634 Moved from sandbox/etrepum/examples/PyObjC, cleaned up.
636 * twisted/internet/cfsupport, twisted/internet/cfreactor.py:
637 Moved from sandbox/etrepum, cleaned up.
639 * twisted/application/app.py:
640 Added 'cf' -> twisted.internet.cfreactor to reactorTypes
643 sys.platform=='darwin' - build cfsupport, do not build cReactor.
646 Changed URL of pimp repository to shorter version.
648 2003-10-12 Jp Calderone <exarkun@twistedmatrix.com>
650 * bin/tktwistd, twisted/scripts/tktwistd.py, doc/man/tktwistd.1:
653 2003-10-12 Itamar Shtull-Trauring <itamar@itamarst.org>
655 * twisted/spread/pb.py: Perspective Broker no longer sends
656 detailed tracebacks over the wire unless the "unsafeTracebacks"
657 attribute is set of the factory.
659 2003-10-02 Jp Calderone <exarkun@twistedmatrix.com>
661 * setup.py, twisted/test/test_dir.py, twisted/python/_c_dir.c:
662 Removed _c_dir extension module for portability and maintenance
665 2003-10-03 Moshe Zadka <moshez@twistedmatrix.com>
667 * twisted/spread/util.py twisted/test/test_spread.py: Fix issue
670 2003-10-01 Brian Warner <warner@lothar.com>
672 * twisted/web/client.py (HTTPDownloader): accept either a filename
673 or a file-like object (it must respond to .write and .close, and
674 partial requests will not be used with file-like objects). errback
675 the deferred if an IOError occurs in .open, .write. or .close,
676 usually something like "permission denied" or "file system full".
678 * twisted/test/test_webclient.py (WebClientTestCase.write): verify
679 that the errback gets called
681 * twisted/scripts/trial.py (run): add --until-failure option to
682 re-run the test until something fails. Closes issue87.
684 2003-09-30 Brian Warner <warner@lothar.com>
686 * twisted/test/test_conch.py (testOurServerOpenSSHClient): replace
687 reactor.run() with .iterate calls: when using .run, exceptions in
688 the server cause a hang.
690 2003-9-29 Moshe Zadka <moshez@twistedmatrix.com>
692 * twisted/tap/procmon.py twisted/plugins.tml: remove procmon
693 tap. It was crufty and hard to port properly to new application.
695 2003-09-29 Brian Warner <warner@lothar.com>
697 * twisted/scripts/trial.py (Options.opt_reactor): make trial
698 accept the same reactor-name abbreviations as twistd does. Closes
700 (top): add test-case-name tag
702 * doc/man/trial.1: document the change
704 2003-09-28 Christopher Armstrong <radix@twistedmatrix.com>
706 * .: Releasing Twisted 1.0.8alpha3.
708 2003-09-27 Cory Dodt <corydodt@yahoo.com>
710 * win32/main.aap win32/pyx.x-foo.iss.template win32/README.win32:
711 Be nice to people who don't install Python for "All Users" on win32.
713 2003-9-18 Moshe Zadka <moshez@twistedmatrix.com>
715 * twisted/application/strports.py twisted/test/test_strports.py:
716 New API/mini-language for defining ports
718 2003-9-18 Moshe Zadka <moshez@twistedmatrix.com>
720 * twisted/web/spider.py: removed, it was unmaintained.
722 2003-09-19 Christopher Armstrong <radix@twistedmatrix.com>
724 * twisted/names/authority.py twisted/test/test_names.py
725 twisted/protocols/dns.py: Client and server support for TTLs on
726 all records. All Record_* types now take a ttl= keyword
727 argument. You can pass the ttl= argument to all the record classes
728 in your pyzones, too.
730 2003-09-19 Moshe Zadka <moshez@twistedmatrix.com>
732 * twisted/application/__init__.py twisted/application/app.py
733 twisted/application/compat.py twisted/application/internet.py
734 twisted/application/service.py twisted/scripts/twistd.py
735 twisted/scripts/twistw.py twisted/scripts/mktap.py
736 twisted/scripts/tapconvert.py bin/twistw: Update to new-style
739 2003-09-19 Jp Calderone <exarkun@twistedmatrix.com>
741 * twisted/names/client.py: Instantiation of theResolver global made
742 lazy. As a result importing it directly will now fail if it has not
743 yet been created. It should not be used directly anymore; instead,
744 use the module-scope lookup methods, or instantiate your own
747 * twisted/mail/relaymanager.py: Instantiation of MXCalculator made
750 2003-09-18 Stephen Thorne <stephen@thorne.id.au>
752 * twisted/web/distrib.py: Removed dependancy on twisted.web.widgets, and
755 2003-09-18 Stephen Thorne <stephen@thorne.id.au>
757 * doc/howto/woven-reference.html: Added this new documentation file.
758 * doc/howto/index.html: Added woven-reference to index
759 * admin/: Added woven-reference.tex to book.tex
761 2003-09-18 Stephen Thorne <stephen@thorne.id.au>
763 * twisted/web/woven/widgets.py: Stop the 'Option' widget from having a
764 name="" attribute. Closes issue255.
766 2003-09-16 Christopher Armstrong <radix@twistedmatrix.com>
768 * .: Releasing Twisted 1.0.8alpha1.
770 * .: Releasing Twisted 1.0.8alpha2 (Fixed Debian packages).
772 2003-09-13 Christopher Armstrong <radix@twistedmatrix.com>
774 * .: Releasing Twisted 1.0.7 (no code changes since 1.0.7rc1).
776 * twisted/web/vhost.py: Un-gobble the path segment that a vhost eats
777 when the resource we're wrapping isLeaf. Potentially closes issue125.
779 2003-09-12 Itamar Shtull-Trauring <itamar@itamarst.org>
781 * twisted/web/microdom.py: lenient mode correctly handles <script>
782 tags with CDATA or comments protecting the code (closes issue #231).
784 2003-09-10 Tommi Virtanen <tv@twistedmatrix.com>
786 * HTTPS support for XML-RPC and web clients (closes issue #236).
788 2003-08-29 Christopher Armstrong <radix@twistedmatrix.com>
790 * .: Releasing Twisted 1.0.7rc1.
792 2003-09-12 Itamar Shtull-Trauring <itamar@itamarst.org>
794 * twisted/spread/pb.py: new cred support for Perspective Broker.
796 2003-08-26 Dave Peticolas <dave@krondo.com>
798 * doc/howto/xmlrpc.html: document sub-handler and introspection
800 * twisted/test/test_xmlrpc.py: test introspection support
802 * twisted/web/xmlrpc.py: implement sub-handlers and introspection
805 2003-08-23 Brian Warner <warner@lothar.com>
807 * twisted/internet/gtk2reactor.py: force timeout values to be
808 integers, because recent pygtk's complain when they get floats
810 2003-08-19 Christopher Armstrong <radix@twistedmatrix.com>
812 * .: Releasing Twisted 1.0.7alpha5.
814 2003-08-18 Jp Calderone <exarkun@twistedmatrix.com>
816 * twisted/protocols/imap4.py: Remove support code for old versions
817 of IMailbox.fetch(); also change the interface once again (no
818 backwards compat this time) to require sequence numbers to be
819 returned, not just whatever the MessageSet spit out.
821 2003-08-16 Dave Peticolas <dave@krondo.com>
823 * twisted/test/test_import.py: update for enterprise
825 * twisted/enterprise/sqlreflector.py: use dbpool directly
827 * twisted/enterprise/row.py: deprecate KeyFactory and StatementBatch
829 * twisted/enterprise/dbpassport.py: remove
831 * twisted/enterprise/dbgadgets.py: deprecate all
833 * twisted/enterprise/dbcred.py: deprecate all
835 * twisted/enterprise/adbapi.py: deprecate Augmentation. deprecate
836 crufty bits of ConnectionPool API.
838 2003-08-11 Dave Peticolas <dave@krondo.com>
840 * twisted/enterprise/sqlreflector.py: fix docs
842 2003-08-08 Donovan Preston <dp@twistedmatrix.com>
844 * Added getAllPatterns API to Widget, which returns all nodes
845 which have the given pattern name.
847 * Refactored List widget to use getAllPatterns, so you can have
848 more than one listHeader, listFooter, and emptyList node.
850 2003-08-08 Dave Peticolas <dave@krondo.com>
852 * twisted/internet/base.py: remove unused internal function.
854 * twisted/internet/gladereactor.py: remove unused internal function.
857 2003-08-07 Christopher Armstrong <radix@twistedmatrix.com>
859 * .: Releasing Twisted 1.0.7alpha4.
861 2003-08-06 Donovan Preston <dp@twistedmatrix.com>
863 * Major woven optimizations.
865 * Removal of inspect-based hacks allowing backwards compatibility
866 with the old IModel interface. All your IModel methods should take
867 the request as the first argument now.
869 * Default to non-case-preserving when importing Woven templates,
870 and case-insensitive microdom. If you are using getPattern or
871 getAttribute in any of your woven code, you will have to make sure
872 to pass all lowercase strings.
874 * Removal of __eq__ magic methods in microdom. This was just
875 slowing woven down far too much, since without it python can
876 use identity when looking for a node in replaceChild. This means
877 you will have to explicitly use the isEqualToDocument or
878 isEqualToNode call if you are testing for the equality of microdom
881 * Removal of usage of hasAttribute, getAttribute, removeAttribute
882 from woven for a speed gain at the expense of tying woven slightly
883 closer to microdom. Nobody will notice.
885 * Improved getPattern semantics thanks to a patch by Rich
886 Cavenaugh. getPattern will now not look for a pattern below any
887 nodes which have model= or view= directives on them.
889 2003-08-04 Dave Peticolas <dave@krondo.com>
891 * twisted/python/usage.py: use parameter docs if handler
892 method has none. fixes bug displaying trial help.
894 2003-07-31 Brian Warner <warner@lothar.com>
896 * twisted/python/filepath.py (FilePath.__getstate__): allow
897 FilePath objects to survive unpersisting.
899 2003-07-30 Brian Warner <warner@lothar.com>
901 * doc/howto/faq.html: mention spawnProcess vs. os.environ
903 * doc/howto/test-standard.html: document usage of .todo and .skip
905 2003-07-28 Brian Warner <warner@lothar.com>
907 * twisted/python/_c_dir.c: hush compiler warning
909 * setup.py: add twisted.xish
911 2003-07-28 Itamar Shtull-Trauring <itamar@itamarst.org>
913 * twisted/spread/pb.py (PBClientFactory): a new, superior API for
914 starting PB connections. Create a factory, do a
915 reactor.connectTCP/SSL() etc., then factory.getPerspective().
917 2003-07-27 Dave Peticolas <dave@krondo.com>
919 * twisted/test/test_enterprise.py: enable tests that depend on
922 * twisted/enterprise/adbapi.py: use threadpool to handle cp_min and
925 * twisted/test/test_threadpool.py: test existing work
927 * twisted/python/threadpool.py: check for existing work in start()
929 2003-07-25 Jp Calderone <exarkun@twistedmatrix.com>
931 * twisted/protocols/imap4.py: The fetch method of the IMailbox
932 interface has been changed to accept only a MessageSet and a uid
933 argument and to return an IMessage implementor.
935 2003-07-24 Brian Warner <warner@lothar.com>
937 * twisted/internet/cReactor/cDelayedCall.c: implement .active and
940 * twisted/test/test_internet.py (InterfaceTestCase.wake): remove
941 reactor.initThreads() call. This is a private method which is
942 triggered internally by the current reactor when threadable.init
943 is called. It does not need to be called independently, and not
944 all reactors implement this particular method.
946 * twisted/test/test_threads.py: shuffle test cases, add timeouts
947 to avoid hanging tests. Added (disabled) test to trigger cReactor
948 hang (but unfortunately it fails under the default reactor)
950 2003-07-23 Dave Peticolas <dave@krondo.com>
952 * twisted/internet/threads.py: avoid top-level reactor import
954 2003-07-23 Jp Calderone <exarkun@twistedmatrix.com>
956 * twisted/protocols/imap4.py: The fetch method of the IMailbox
957 interface has been changed to accept a list of (non-string)
958 objects representing the requested message parts. Less knowledge
959 of the IMAP4 protocol should be required to properly implement
962 2003-07-23 Dave Peticolas <dave@krondo.com>
964 * twisted/test/test_enterprise.py: more tests
966 2003-07-21 Dave Peticolas <dave@krondo.com>
968 * twisted/internet/base.py: implement callWhenRunning
970 * twisted/internet/interfaces.py: add callWhenRunning API
972 * twisted/test/test_pop3.py: string in string only works in 2.3
974 2003-07-19 Christopher Armstrong <radix@twistedmatrix.com>
976 * .: Releasing Twisted 1.0.7alpha3 (for form and twisted.names
977 updates mentioned below).
979 2003-07-19 Ying Li <cyli@ai.mit.edu>
981 * twisted/web/woven/form.py: Changed form widgets so that if the
982 template already has the widget coded, merges the template widget
983 with the model widget (sets default values, etc.).
985 * twisted/web/woven/form.py, twisted/python/formmethod.py: Can
986 format layout of checkgroups and radiogroups into tables, rows, or
989 * twisted/web/woven/form.py, twisted/python/formmethod.py: Added
990 file input widget (unable to retrieve filename or file type - have
991 to ask for that separately).
993 2003-07-19 Christopher Armstrong <radix@twistedmatrix.com>
995 * twisted/protocols/dns.py, twisted/names: Twisted Names can now
996 return the `authoritative' bit. All of the resolvers in
997 twisted/names/authority.py now set it.
999 2003-07-17 Christopher Armstrong <radix@twistedmatrix.com>
1001 * .: Releasing Twisted 1.0.7alpha2 (Debian packages should be
1004 2003-07-17 Dave Peticolas <dave@krondo.com>
1006 * doc/howto/components.html: methods in interfaces do have self
1009 2003-07-18 Christopher Armstrong <radix@twistedmatrix.com>
1011 * twisted/web/client.py: Added a `timeout' keyword argument to
1012 getPage; If the web page takes longer than `timeout' to fetch,
1013 defer.TimeoutError is errbacked.
1015 * twisted/web/server.py, twisted/protocols/http.py: add `timeout'
1016 argument to HTTPFactory and Site to specify how long to allow
1017 connections to sit without communication before disconnecting
1020 2003-07-18 Christopher Armstrong <radix@twistedmatrix.com>
1022 * .: Releasing Twisted 1.0.7alpha1.
1024 2003-07-17 Jp Calderone <exarkun@twistedmatrix.com>
1026 * twisted/protocols/smtp.py: Address class changed to provide a
1027 default domain for addresses missing a domain part.
1029 2003-07-16 Christopher Armstrong <radix@twistedmatrix.com>
1031 * twisted/protocols/sux.py: In beExtremelyLenient mode, all data
1032 in script elements is considered plain text and will not be parsed
1033 for tags or entity references.
1035 2003-07-15 Dave Peticolas <dave@krondo.com>
1037 * twisted/persisted/styles.py: better debugging output
1040 2003-07-14 Jp Calderone <exarkun@twistedmatrix.com>
1042 * twisted/cred/checkers.py, twisted/cred/credentials.py:
1043 CramMD5Credentials and OnDiskUsernamePasswordDatabase added;
1044 IUsernameHashedPassword also created for use by protocols that
1045 do not receive plaintext passwords over the network.
1047 * twisted/mail/, twisted/protocols/smtp.py: Addition of alias
1048 support and authenticated ESMTP connections. Several interfaces
1049 changed, but deprecation warnings and backwards compatibility code
1050 has been put in place to ease the change.
1052 2003-07-12 Christopher Armstrong <radix@twistedmatrix.com>
1054 * twisted/web/util.py: Add a new ChildRedirector that, when placed
1055 at /foo to redirect to /bar, will also redirect /foo/abc to
1058 * twisted/web/scripts.py: Fixed ResourceScriptWrapper so that you
1059 can now .putChild on the resource you create in an .rpy file that
1060 is wrapped with this class.
1062 2003-07-06 Paul Swartz <z3p@twistedmatrix.com>
1063 * twisted/conch/[checkers,credentials,pamauth].py,
1064 twisted/conch/ssh/userauth.py, twisted/tap/conch.py: made PAM
1065 work again as an authentication.
1067 2003-07-05 Dave Peticolas <dave@krondo.com>
1069 * twisted/test/test_enterprise.py: more tests. Add mysql test.
1071 2003-07-05 Itamar Shtull-Trauring <itamar@itamarst.org>
1073 * twisted/web/soap.py: Now requires SOAPpy v0.10.1, allow subclasses
1074 to determine method publishing strategy.
1076 2004-07-05 Jp Calderone <exarkun@twistedmatrix.com>
1078 * bin/mailmail, doc/man/mailmail.1, twisted/scripts/mailmail.py:
1079 sendmail replacement
1081 2003-07-04 Dave Peticolas <dave@krondo.com>
1083 * twisted/test/test_enterprise.py: add sqlite. more tests.
1086 * twisted/enterprise/util.py: fix bug in getKeyColumn
1088 * twisted/enterprise/sqlreflector.py: clean up imports
1090 * twisted/enterprise/row.py: clean up imports
1092 * twisted/enterprise/reflector.py: clean up imports
1094 2004-07-04 Jp Calderone <exarkun@twistedmatrix.com>
1096 * twisted/python/dir.c: Wrapper around opendir(3), readdir(3),
1097 and scandir(3) for use by twisted.python.plugins.
1099 2003-07-03 Jp Calderone <exarkun@twistedmatrix.com>
1101 * twisted/news/database.py: NewsShelf.articleRequest() and
1102 NewsShelf.bodyRequest() now expected to return a file-like object
1103 in the last position of its returned three-tuple. The old API
1104 is still supported, but deprecated.
1106 2003-07-03 Dave Peticolas <dave@krondo.com>
1108 * twisted/test/test_enterprise.py: add gadfly test
1110 * twisted/web/woven/input.py: remove excess newline.
1112 * twisted/trial/unittest.py: take out unused methodPrefix var
1114 * twisted/enterprise/adbapi.py: accept 'noisy' kw arg. persist
1115 noisy, min, and max args. just warn about non-dbapi db libs.
1117 * twisted/enterprise/reflector.py: fix spelling
1119 * twisted/enterprise/sqlreflector.py 80 columns, don't addToCache
1122 * twisted/enterprise/xmlreflector.py: 80 columns
1124 2003-07-01 Brian Warner <warner@lothar.com>
1126 * sandbox/warner/fusd_twisted.py: experimental glue code for FUSD,
1127 a system for implementing Linux device drivers in userspace
1129 2003-06-27 Christopher Armstrong <radix@twistedmatrix.com>
1131 * .: Releasing Twisted 1.0.6rc3. Fixed a security bug in
1134 * .: Releasing Twisted 1.0.6rc4. One more twisted.web bug.
1136 * .: Releasing Twisted 1.0.6.
1138 2003-06-26 Christopher Armstrong <radix@twistedmatrix.com>
1140 * .: Releasing Twisted 1.0.6rc1.
1142 * .: Releasing Twisted 1.0.6rc2. Pop3 had failing tests.
1144 2003-06-26 Clark C. Evans <cce@twistedmatrix.com>
1146 * twisted/flow/*.py: Moved Flow from the sandbox to
1147 twisted.flow. The callback is dead. Long live the callback!
1149 2003-06-26 Jp Calderone <exarkun@twistedmatrix.com>
1151 * twisted/protocols/pop3.py: POP3.authenticateUserXYZ no longer
1152 returns a Mailbox object. It now returns a 3-tuple. See
1153 twisted.cred.portal.Portal.login for more details about the return
1156 2003-06-24 Brian Warner <warner@lothar.com>
1158 * doc/howto/upgrading.html: Explain Versioned and rebuild()
1160 2003-06-23 Christopher Armstrong <radix@twistedmatrix.com>
1162 * twisted/scripts/trial.py twisted/trial/reporter.py
1165 Added a --tbformat={plain,emacs} option to trial. Now the default
1166 is to show the regular python traceback; if you want tracebacks
1167 that look like compiler output for emacs, use --tbformat=emacs.
1169 2003-06-23 Cory Dodt <corydodt@yahoo.com>
1171 * twisted/python/util.py twisted/web/microdom.py
1172 twisted/test/test_{util,xml}.py: preserveCase and caseInsensitive
1173 work on attribute names as well as element names.
1175 2003-06-22 Jp Calderone <exarkun@twistedmatrix.com>
1177 * twisted/internet/defer.py: Changed maybeDeferred API from
1178 maybeDeferred(deferred, f, *args, **kw) to maybeDeferred(f, *args,
1181 2003-06-19 Paul Swartz <z3p@twistedmatrix.com>
1183 * twisted/conch/{checkers,credentials,realm}.py,
1184 twisted/conch/ssh/userauth.py: Moved the Conch user authentication
1185 code to use the new version of Cred.
1187 2003-06-19 Christopher Armstrong <radix@twistedmatrix.com>
1189 * .: Releasing Twisted 1.0.6alpha3. There was a problem in
1190 twisted.python.compat that was breaking the documentation
1191 building. It is now fixed.
1193 2003-06-18 Christopher Armstrong <radix@twistedmatrix.com>
1195 * .: Releasing Twisted 1.0.6alpha2.
1197 2003-06-16 Donovan Preston <dp@twistedmatrix.com>
1199 * twisted/web/woven/{controller,view,widgets}.py: Cleaned up the
1200 output of Woven so it never leaves any woven-specific attributes
1201 on the output HTML. Also, id attributes are not set on every
1202 node with a View unless you are using LivePage.
1204 2003-06-11 Brian Warner <warner@lothar.com>
1206 * doc/howto/cvs-dev.html: add "Working from CVS" hints
1208 2003-06-10 Itamar Shtull-Trauring <itamar@itamarst.org>
1210 * twisted/internet/protocol.py: connection refused errors for
1211 connected datagram protocols (connectUDP) are indicated using
1212 callback, ConnectedDatagramProtocol.connectionRefused, rather
1213 than an exception as before.
1215 2003-06-09 Christopher Armstrong <radix@twistedmatrix.com>
1217 * twisted/trial/{unittest,runner}.py: Added setUpClass and
1218 tearDownClass methods and invocations to twisted.trial. Implement
1219 those methods in your TestCases if you want to manage resources on
1222 2003-06-09 Jp Calderone <exarkun@twistedmatrix.com>
1224 * twisted/mail/relay.py: Default relaying rule change from all
1225 local and all non-INET connections to all local and all UNIX
1228 2003-06-08 Jp Calderone <exarkun@twistedmatrix.com>
1230 * twisted/internet/interfaces.py: Added ITLSTransport interface,
1231 subclassing ITCPTransport and adding one method - startTLS()
1233 * twisted/internet/tcp.py: Connector class made to implement
1234 ITLSTransport if TLS is available.
1236 2003-06-05 Brian Warner <warner@lothar.com>
1238 * twisted/conch/ssh/transport.py (ssh_KEX_DH_GEX_INIT): don't use
1239 small values for DH parameter 'y'. openssh rejects these because they
1240 make it trivial to reconstruct the shared secret. This caused a test
1241 failure about 1024 times out of every 65536.
1243 * twisted/test/test_dirdbm.py (DirDbmTestCase.testModificationTime):
1244 dodge a kernel bug that lets mtime get skewed from time(), causing
1245 an occasional test failure
1247 2003-06-03 Jp Calderone <exarkun@twistedmatrix.com>
1249 * twisted/__init__.py twisted/internet/app.py
1250 * twisted/internet/unix.py twisted/internet/tcp.py
1251 * twisted/manhole/ui/gtk2manhole.py twisted/protocols/dns.py
1252 * twisted/protocols/smtp.py twisted/protocols/sux.py
1253 * twisted/protocols/imap4.py twisted/protocols/sip.py
1254 * twisted/protocols/htb.py twisted/protocols/pcp.py
1255 * twisted/python/formmethod.py twisted/python/reflect.py
1256 * twisted/python/util.py twisted/python/components.py
1257 * twisted/spread/jelly.py twisted/spread/newjelly.py
1258 * twisted/test/test_components.py twisted/test/test_rebuild.py
1259 * twisted/test/test_trial.py twisted/test/test_world.py
1260 * twisted/test/test_setup.py twisted/test/test_newjelly.py
1261 * twisted/test/test_compat.py twisted/test/test_pcp.py
1262 * twisted/test/test_log.py twisted/web/microdom.py
1263 * twisted/web/woven/page.py twisted/popsicle/mailsicle.py
1264 * twisted/trial/remote.py twisted/trial/unittest.py
1265 * twisted/world/allocator.py twisted/world/compound.py
1266 * twisted/world/database.py twisted/world/storable.py
1267 * twisted/world/structfile.py twisted/world/typemap.py:
1269 Remove direct usage of twisted.python.compat; Modify __builtin__
1270 module to include forward-compatibility hacks.
1272 2003-05-30 Brian Warner <warner@lothar.com>
1274 * twisted/conch/ssh/keys.py (signData_dsa): Force DSS signature
1275 blobs to be 20 bytes long. About 1% of the time, the sig numbers
1276 would come out small and fit into 19 bytes, which would result in
1277 an invalid signature.
1278 * twisted/test/test_conch.py: remove special hacked test case used
1279 to find that invalid-signature problem.
1281 2003-05-29 Brian Warner <warner@lothar.com>
1283 * twisted/python/formmethod.py: this module needs False from compat
1285 * twisted/internet/process.py (ProcessWriter.writeSomeData):
1286 Accomodate Mac OS-X, which sometimes raises OSError(EAGAIN)
1287 instead of IOError(EAGAIN) when the pipe is full.
1289 2003-05-27 Brian Warner <warner@lothar.com>
1291 * twisted/test/test_process.py (EchoProtocol): try to close
1292 occasional test failure. Do transport.closeStdin() instead of
1293 loseConnection() because the child still has data to write (to
1294 stderr). Closing all three streams takes away its voice, forces it
1295 to exit with an error, and is probably causing problems.
1297 * twisted/test/test_factories.py (testStopTrying): stop test after
1298 5 seconds rather than 2000 iterations. Some reactors iterate at
1301 2003-05-24 Brian Warner <warner@lothar.com>
1303 * twisted/scripts/trial.py (Options.opt_testmodule): ignore
1304 deleted files, recognize twisted/test/* files as test cases
1306 2003-05-22 Brian Warner <warner@lothar.com>
1308 * twisted/test/test_newjelly.py (JellyTestCase.testUnicode): make
1309 sure unicode strings don't mutate into plain ones
1311 2003-05-21 Brian Warner <warner@lothar.com>
1313 * twisted/internet/tcp.py (Connection.getTcpKeepAlive): Add
1314 functions to control SO_KEEPALIVE bit on TCP sockets.
1315 * twisted/internet/interfaces.py (ITCPTransport): ditto
1316 * twisted/test/test_tcp.py (LoopbackTestCase.testTcpKeepAlive):
1319 * doc/howto/test-standard.html: document test-case-name format
1321 * doc/howto/coding-standard.html: encourage test-case-name tags
1323 * twisted/protocols/htb.py, twisted/protocols/irc.py,
1324 twisted/protocols/pcp.py, twisted/python/text.py,
1325 twisted/spread/pb.py, twisted/trial/remote.py: clean up
1328 * twisted/scripts/trial.py (Options.opt_testmodule): try to handle
1329 test-case-name tags the same way emacs does
1331 2003-05-21 Christopher Armstrong <radix@twistedmatrix.com>
1333 * bin/coil, doc/man/coil.1, doc/man/index.html: removed. Coil
1334 isn't being maintained, pending a total rewrite.
1336 2003-05-20 Brian Warner <warner@lothar.com>
1338 * twisted/python/reflect.py (namedAny): re-raise ImportErrors that
1339 happen inside the module being imported, instead of assuming that
1340 it means the module doesn't exist.
1342 2003-05-19 Christopher Armstrong <radix@twistedmatrix.com>
1344 * twisted/web/server.py: Added two new methods to Request objects:
1345 rememberRootURL and getRootURL. Calling rememberRootURL will store
1346 the already-processed part of the URL on the request, and calling
1347 getRootURL will return it. This is so you can more easily link to
1348 disparate parts of your web application.
1350 * twisted/web/woven/{page,widgets}.py: Updated Woven to take
1351 advantage of previously-mentioned Request changes. You can now say
1352 `appRoot = True' in the Page subclass that is instantiated by your
1353 .rpy (for example), and then use a RootRelativeLink widget
1354 (exactly the same way you use a Link widget) to get a link
1355 relative to your root .rpy.
1357 2003-05-16 Brian Warner <warner@lothar.com>
1359 * twisted/scripts/trial.py: catch failures during import of test
1360 modules named on the command line too.
1362 * twisted/trial/unittest.py (TestSuite.addModule): catch all failures
1363 during import so that syntax errors in test files don't prevent
1364 other tests from being run.
1366 * twisted/trial/reporter.py (TextReporter): handle both Failures
1367 and exception tuples in import errors. Emit the messages before the
1368 last summary line so that test-result parsers can still find the
1371 * doc/howto/faq.html: Add note about Ephemeral in the
1372 import-from-self twistd entry.
1374 2003-05-13 Brian Warner <warner@lothar.com>
1376 * twisted/trial/runner.py: sort tests by name within a TestCase
1378 2003-05-13 Christopher Armstrong <radix@twistedmatrix.com>
1380 * twisted/internet/{default,internet}.py: Add an `active' method to
1381 DelayedCall, which returns True if it hasn't been called or
1384 2003-05-13 Jonathan Lange <jml@twistedmatrix.com>
1386 * twisted/trial/unittest.py twisted/scripts/trial.py
1387 doc/man/trial.1: Add --recurse option to make trial search within
1388 sub-packages for test modules.
1390 2003-5-12 Moshe Zadka <moshez@twistedmatrix.com>
1392 * twisted/lore/default.py twisted/lore/latex.py
1393 twisted/lore/lint.py twisted/lore/math.py twisted/lore/tree.py
1394 twisted/lore/lmath.py twisted/lore/slides.py:
1395 Added indexing support to LaTeX and lint, and made sure the
1396 config dictionary is passed to the tree processors [this is an
1397 API change which might have effect on Lore extensions!]. Rename
1398 math to lmath, to avoid some corner-case bugs where it gets mixed
1399 with the Python standard module "math".
1401 2003-05-11 Christopher Armstrong <radix@twistedmatrix.com>
1403 * .: Releasing Twisted 1.0.6alpha1. There was a problem
1404 with file descriptors in 1.0.5; some debugging information
1405 has been added to this release. The problem should be fixed
1408 2003-05-08 Christopher Armstrong <radix@twistedmatrix.com>
1410 * .: Releasing Twisted 1.0.5 (same code-base as rc2).
1412 2003-05-08 Glyph Lefkowitz <glyph@twistedmatrix.com>
1414 * twisted/world: Added an object database to Twisted. This is
1415 still highly experimental!
1417 2003-5-6 Moshe Zadka <moshez@twistedmatrix.com>
1419 * twisted/trial/reporter.py twisted/scripts/trial.py: Add --timing
1420 option to make the reporter output wall-clock time.
1422 2003-05-05 Brian Warner <warner@lothar.com>
1424 * setup.py (setup_args): s/licence/license/, preferred in python-2.3
1426 2003-05-05 Christopher Armstrong <radix@twistedmatrix.com>
1428 * .: Releasing Twisted 1.0.5rc1.
1430 * .: Releasing Twisted 1.0.5rc2 (only a Debian build problem fixed).
1432 2003-05-05 Brian Warner <warner@lothar.com>
1434 * twisted/trial/reporter.py: remove ResultTypes, it doesn't really
1437 * twisted/trial/unittest.py: move log.startKeepingErrors() from
1438 top-level to TestSuite.run(). This fixes the problem of errors
1439 being eaten by code which imports unittest for other reasons (like
1440 to use trial.remote reporting)
1442 2003-05-04 Brian Warner <warner@lothar.com>
1444 * twisted/trial/reporter.py (ResultTypes): export legal values for
1445 Reporter.reportResults() so remote reporters know what to expect
1447 2003-05-03 Jp Calderone <exarkun@twistedmatrix.com>
1449 * twisted/internet/tcp.py, twisted/internet/ssl.py: TLS support
1450 added to TCP connections; startTLS() method added to transport
1451 objects to switch from unencrypted to encrypted mode.
1453 2003-05-02 Jp Calderone <exarkun@twistedmatrix.com>
1455 * twisted/internet/protocol.py: Added continueTrying attribute to
1456 ReconnectingClientFactory, and increased the number of states where
1457 stopTrying() will actually stop further connection attempts.
1459 2003-05-01 Brian Warner <warner@lothar.com>
1461 * twisted/test/test_trial.py: handle new trial layout
1462 * twisted/trial/runner.py (runTest): utility function to help
1464 * twisted/trial/util.py (extract_tb): handle new trial layout,
1465 ignore the right framework functions.
1467 2003-05-01 Glyph Lefkowitz <glyph@twistedmatrix.com>
1469 * twisted/python/context.py: call-stack context tree.
1471 * twisted/python/components.py: support interface-to-interface
1472 adapatation, IFoo(o) syntax for adaptation, context-based
1473 registries and more.
1475 * twisted/python/log.py: Totally rewritten logging system.
1477 2003-05-01 Brian Warner <warner@lothar.com>
1479 * twisted/internet/gtk2reactor.py (Gtk2Reactor._doReadOrWrite):
1480 add Anthony's cached-Failure speedup to gtk2 too.
1482 2003-05-01 Itamar Shtull-Trauring <itamar@itamarst.org>
1484 * twisted/internet/tcp.py, twisted/internet/default.py: cache
1485 Failures whose contents are always identical. Speeds up lost
1486 connections considerably.
1488 * twisted/python/failure.py: If you pass only an exception object
1489 to Failure(), a stack will not be constructed. Speeds up Failure
1490 creation in certain common cases where traceback printing isn't
1493 2003-04-29 Brian Warner <warner@lothar.com>
1495 * twisted/test/test_process.py: make all child processes inherit
1496 their parent's environment
1498 * twisted/web/resource.py, twisted/python/roots.py: add
1501 * twisted/web/resource.py (IResource)
1502 twisted/spread/refpath.py (PathReferenceAcquisitionContext.getIndex)
1503 twisted/python/roots.py (Collection.getEntity): appease pychecker
1505 2003-04-27 Jp Calderone <exarkun@twistedmatrix.com>
1507 * doc/examples/bananabench.py, twisted/internet/utils.py,
1508 twisted/mail/bounce.py, twisted/persisted/styles.py,
1509 twisted/python/log.py, twisted/python/reflect.py,
1510 twisted/spread/pb.py, twisted/test/test_banana.py,
1511 twisted/test/test_iutils.py, twisted/test/test_persisted.py,
1512 twisted/test/test_process.py, twisted/web/domhelpers.py,
1513 twisted/web/script.py, twisted/web/server.py, twisted/web/test.py:
1514 Change the usage of cStringIO to fallback to StringIO if the former
1517 * twisted/im/gtkaccount.py, twisted/internet/app.py,
1518 twisted/mail/relay.py, twisted/mail/relaymanager.py,
1519 twisted/persisted/journal/base.py, twisted/persisted/dirdbm.py,
1520 twisted/scripts/conch.py, twisted/scripts/tapconvert.py,
1521 twisted/scripts/twistd.py, twisted/scripts/websetroot.py,
1522 twisted/test/test_mvc.py, twisted/test/test_persisted.py,
1523 twisted/web/woven/template.py, twisted/web/woven/view.py,
1524 twisted/popsicle/picklesicle.py: Change the usage of cPickle to
1525 fallback to pickle if the former is not available.
1527 * doc/howto/coding-standard.html: Document the way to use extension
1528 versions of modules for which there is a pure-python equivalent.
1530 2003-04-26 Dave Peticolas <dave@krondo.com>
1532 * twisted/enterprise/adbapi.py: commit successful _runQuery calls
1533 instead of rolling back
1535 2003-04-23 Brian Warner <warner@lothar.com>
1537 * doc/howto/telnet.html: Update example from twisted-0.15.5(!) to
1540 * twisted/protocols/loopback.py: use reactor.iterate(0.01) so the
1541 tests hammer the CPU slightly less
1543 * twisted/test/test_trial.py (LoopbackTests.testError): .type is a
1545 * twisted/trial/remote.py (JellyReporter.reportResults): stringify
1546 .type and .value from Failures before jellying them.
1548 * twisted/internet/base.py (ReactorBase.suggestThreadPoolSize):
1549 don't let suggestThreadPoolSize(0) be the only reason threads are
1552 * twisted/python/log.py (err): always log Failures to the logfile. If
1553 we're doing _keepErrors, then also add them to _keptErrors.
1555 * twisted/trial/unittest.py (TestSuite.runOneTest): only do
1556 reportResults once per test. Handle reactor.threadpool being None.
1558 2003-04-22 Bob Ippolito <bob@redivi.com>
1560 * twisted/python/compat.py: Complete iter implementation with
1561 __getitem__ hack for 2.1. dict now supports the full 2.3 featureset.
1563 * twisted/test/test_compat.py: Tests for compat module, so we know if
1564 it works or not now ;)
1566 2003-04-22 Andrew Bennetts <spiv@twistedmatrix.com>
1568 * twisted/lore/latex.py: Handle cross-references and labels slightly
1569 better, so that e.g. man/lore.html and howto/lore.html don't generate
1570 conflicting labels. Also, emit \loreref{...} instead of \pageref{...}
1571 -- this isn't a standard LaTeX command, see admin/book.tex for an
1572 example definition. In HTML generation, all relative hrefs in <a>
1573 tags are now munged from .html to .xhtml, unless class="absolute".
1575 2003-04-21 Jp Calderone <exarkun@twistedmatrix.com>
1577 * twisted/internet/interfaces.py: Added getServiceNamed, addService,
1578 and removeService to IServiceCollection.
1580 2003-04-21 Brian Warner <warner@lothar.com>
1582 * twisted/web/woven/*.py: add test-case-name tags
1584 2003-04-21 Bob Ippolito <bob@redivi.com>
1586 * twisted/web/static.py (File, DirectoryListing): DirectoryListing
1587 now gets the directory listing from File.listNames, and no longer
1588 calls os.listdir directly (unless a directory listing is not
1589 specified in the DirectoryListing constructor).
1591 2003-04-19 Brian Warner <warner@lothar.com>
1593 * twisted/trial/remote.py (JellyReporter.cleanResults): handle
1594 strings as testClass/method to unbreak tests
1596 * twisted/trial/remote.py (JellyReporter.reportResults): send only
1597 name of testClass/method to remote reporter, not whole class and
1598 method. Also add .taster hook to DecodeReport to let users specify
1599 their own security options.
1601 2003-04-17 Kevin Turner <acapnotic@twistedmatrix.com>
1603 * .: Release 1.0.4 Final.
1605 2003-04-16 Kevin Turner <acapnotic@twistedmatrix.com>
1607 * .: Release 1.0.4rc1.
1609 2003-04-15 Jp Calderone <exarkun@twistedmatrix.com>
1611 * admin/accepttests, admin/accepttests.py: Acceptance tests
1612 turned into a Python module with no unguarded top-level code,
1613 to make running acceptance tests selectively possible.
1615 2003-04-14 Brian Warner <warner@lothar.com>
1617 * twisted/python/threadable.py (init):
1618 * twisted/spread/newjelly.py (SecurityOptions.allowBasicTypes):
1619 * twisted/spread/jelly.py (SecurityOptions.allowBasicTypes):
1620 Remove old apply() calls.
1622 * twisted/spread/flavors.py (Copyable.jellyFor): Use proper
1623 jellier .prepare/.preserve dance when .invoker is non-None. This
1624 fixes jellying of circular references when passed through PB
1627 * twisted/test/test_newjelly.py: add test case that sets .invoker
1628 to verify that code path too
1630 2003-04-14 Jonathan Lange <jml@ids.org.au>
1632 * twisted/web/woven/controller.py (Controller): now, if getChild
1633 cannot find the requested child, it will ask getDynamicChild -- a
1634 method like getChild, but designed to be overriden by users.
1636 2003-04-13 Bob Ippolito <bob@redivi.com>
1638 * twisted/internet/app.py (DependentMultiService): a MultiService
1639 to start services in insert order and stop them in reverse. Uses
1640 chained deferreds to ensure that if a startService or stopService
1641 returns a deferred, then the next service in the queue will wait
1642 until its dependency has finished.
1644 2003-04-12 Brian Warner <warner@lothar.com>
1646 * twisted/test/test_process.py (PosixProcessTestCasePTY): skip
1647 testStdio, testStderr, and testProcess. PTYs do not have separate
1648 stdout/stderr, so the tests just aren't relevant. testProcess
1649 might be, but it requires support for closing the write side
1650 separately from the read side, and I don't think our processPTY
1651 can do that quite yet.
1653 * twisted/test/test_tcp.py (LocalRemoteAddressTestCase): iterate
1654 harder. some systems might not connect to localhost before
1655 iterate() is called, flunking the test
1657 * twisted/test/test_process.py: only install SIGCHLD handler if the
1658 reactor offers a hook for it.
1660 * twisted/test/test_policies.py (ThrottlingTestCase.doIterations):
1661 add more iterations to accomodate reactors that do less IO per pass
1663 * twisted/test/process_signal.py: reset SIGHUP to default handler,
1664 fixes test failures in a 'nohup' environment
1666 * twisted/test/test_process.py (PosixProcessTestCasePTY): remove
1667 testClosePty.todo now that it works
1668 (SignalProtocol.processEnded): Improve testSignal error messages
1670 * twisted/internet/process.py (PTYProcess.connectionLost): Treat
1671 PTYs more like sockets: loseConnection sets .disconnecting and
1672 lets the write pipe drain, then the PTY is closed in
1675 2003-04-12 Paul Swartz <z3p@twistedmatrix.com>
1677 * twisted/plugins.tml, twisted/tap/ssh.py, twisted/tap/conch.py: moved
1678 the conch server from 'mktap ssh' to 'mktap conch'.
1680 2003-04-12 Brian Warner <warner@lothar.com>
1682 * twisted/internet/gtk2reactor.py (Gtk2Reactor.doIteration): don't
1683 process *all* events before exiting: lots of IO (like test cases which
1684 do connect()s from inside connectionMade) will keep us from surfacing
1685 from reactor.iterate(), causing a lockup.
1686 * twisted/internet/gtkreactor.py (GtkReactor.doIteration): same. Use
1687 the same code as gtk2reactor with minor gtk1-vs-gtk2 variations.
1689 2003-04-11 Brian Warner <warner@lothar.com>
1691 * twisted/internet/gtk2reactor.py (Gtk2Reactor.doIteration): use
1692 timers to match the behavior of select()-based reactors.
1693 reactor.iterate(delay) is thus defined to return after 'delay'
1694 seconds, or earlier if something woke it up (like IO, or timers
1697 2003-04-11 Jp Calderone <exarkun@twistedmatrix.com>
1699 * twisted/internet/defer.py: Added new, experimental function,
1700 "maybeDeferred". API is subject to change.
1702 2003-04-11 Jp Calderone <exarkun@twistedmatrix.com>
1704 * twisted/scripts/mktap.py: Sped up --debug and --progress by
1705 introducing a two-pass option parser.
1707 2003-04-11 Brian Warner <warner@lothar.com>
1709 * twisted/internet/gtk2reactor.py: major fixes. Use different
1710 POLLIN/OUT flags to robustly work around pygtk bug, change
1711 callback() to behave more like pollreactor (since gtk uses poll
1712 internally). doIteration now calls gtk.main_iteration in a
1713 non-blocking way. Attempt to emulate doIteration(delay!=0) by
1716 * twisted/internet/gtkreactor.py: same fixes as for gtk2reactor.
1717 Instead of a pygtk bug we've got the limited gtk_input_add API,
1718 which hides POLLHUP/POLLERR, so detecting closed fds might not be
1721 2003-04-11 Andrew Bennetts <spiv@twistedmatrix.com>
1724 Added a "lore-slides" plugin, with HTML, Magicpoint and Prosper output
1725 targets. It's still a bit rough, but functional.
1727 2003-04-10 Kevin Turner <acapnotic@twistedmatrix.com>
1729 * .: Release 1.0.4alpha2.
1731 2003-04-09 Brian Warner <warner@lothar.com>
1733 * twisted/scripts/trial.py (Options.opt_reactor): install reactor
1734 before parseArgs() does an import and installs the default one
1736 * twisted/internet/process.py: fix typo,
1737 s/registerReapProccessHandler/registerReapProcessHandler)/
1739 2003-04-09 Jp Calderone <exarkun@twistedmatrix.com>
1741 * twisted/internet/base.py: Change the sort order of DelayedCalls
1742 and remove them from the end of the list instead of the beginning.
1743 This changes O(n) complexity to O(1) complexity.
1745 2003-04-09 Brian Warner <warner@lothar.com>
1747 * twisted/test/test_jelly.py, test_newjelly: Test cleanup.
1748 Parameterize the jelly module used by the tests, make test_jelly a
1749 subclass of test_newjelly using a different jelly module: tests
1750 should now be unified. Also change tests to use proper trial
1751 self.failUnless() methods instead of bare assert().
1753 2003-04-09 Bob Ippolito <bob@redivi.com>
1755 * twisted/python/util.py (OrderedDict): added a UserDict subclass
1756 that preserves insert order (for __repr__, items, values, keys).
1758 * twisted/internet/app.py (Application, _AbstractServiceCollection):
1759 Preserve service order, start services in order, stop them in reverse.
1761 2003-04-09 Andrew Bennetts <spiv@twistedmatrix.com>
1763 * twisted/protocols/ftp.py (FTPClient):
1764 Added STOR support to FTPClient, as well as support for using
1765 Producers or Consumers instead of Protocols for uploading/downloading.
1766 * twisted/protocols/policies.py (TimeoutWrapper):
1767 Added a timeout policy that can be used to automatically disconnect
1768 inactive connections.
1770 2003-04-07 Brian Warner <warner@lothar.com>
1772 * twisted/test/test_banana.py (BananaTestCase): add Acapnotic's
1773 crash-cBanana test case, and some others.
1775 * twisted/spread/banana.py (Pynana.dataReceived): add 640k limit on
1776 lists/tuples, parameterize the limit into banana.SIZE_LIMIT, define
1777 and use BananaError on all problems. Impose 640k limit on outbound
1778 lists/tuples/strings to catch problems on transmit side too.
1780 * twisted/spread/cBanana.c (cBanana_dataReceived): check malloc()
1781 return values to avoid segfault from oversized lists. Impose 640k
1782 limit on length of incoming lists. Raise BananaError on these
1783 checks instead of the previously-unreachable
1784 cBanana.'cBanana.error' exception.
1786 * twisted/test/test_process.py (TwoProcessProtocol): add test to make
1787 sure killing one process doesn't take out a second one
1788 (PosixProcessTestCasePTY): add variant that sets usePTY=1
1790 2003-04-06 Brian Warner <warner@lothar.com>
1792 * twisted/trial/{unittest.py,remote.py}, twisted/test/test_trial.py:
1793 Collapse most reportFoo methods into a single reportResults() that
1794 takes a resultType parameter. This anticipates the addition of .todo
1795 test-case flags that will add two more resultTypes.
1796 * twisted/trial/unittest.py: Add .todo flags: creates EXPECTED_FAILURE
1797 and UNEXPECTED_SUCCESS resultTypes. Like .skip, the .todo can be
1798 added either to the TestCase object or as a method attribute.
1800 2003-04-04 Kevin Turner <acapnotic@twistedmatrix.com>
1802 * twisted/scripts/trial.py: Now takes whatever you throw at it on
1803 the command line, be it a filename, or a dotted python name for a
1804 package, module, TestCase, or test method; you no longer need to
1805 use the -pmcfM switches (unless you really want to).
1807 * twisted/protocols/htb.py: Egress traffic shaping for Consumers
1808 and Transports, using Heirarchial Token Buckets, patterened after
1809 Martin Devera's Hierarchical Token Bucket traffic shaper for the
1812 * doc/examples/shaper.py: Demonstration of shaping traffic on a
1815 * twisted/protocols/pcp.py: Producer/Consumer proxy, for when you
1816 wish to install yourself between a Producer and a Consumer and
1817 subvert the flow of data.
1819 2003-04-04 Itamar Shtull-Trauring <itamar@itamarst.org>
1821 * twisted/web/microdom.py: parseXML and parseXMLString functions
1822 that are setup to use the correct settings for strict XML parsing
1825 2003-03-31 Brian Warner <warner@lothar.com>
1827 * twisted/trial/unittest.py: use SkipTest's argument as a reason
1828 and display it in the test results instead of the traceback. Allow
1829 test methods and TestCase classes to define a .skip attribute
1830 instead of raising SkipTest.
1832 2003-03-31 Kevin Turner <acapnotic@twistedmatrix.com>
1834 * twisted/trial/remote.py: machine-readable trial output to allow
1835 for the test runner and the results Reporter to be in seperate
1838 2003-03-15 Jp Calderone <exarkun@twistedmatrix.com>
1840 * twisted/internet/app.py: Renamed "factory" argument to
1841 Application.listenUDP() to "proto"
1843 2003-03-13 Tommi Virtanen <tv@twistedmatrix.com>
1845 * twisted/tap/procmon.py, twisted/plugins.tml: support for mktapping
1848 2003-03-11 Bob Ippolito <bob@redivi.com>
1850 * twisted/internet/: Replaced apply() in non-deprecated
1851 twisted.internet modules with Direct Function Calls per
1852 recommendation from PEP 290.
1854 * twisted/web/client.py: HTTPPageGetter will now write
1855 self.factory.postdata to the transport after the headers if the
1856 attribute is present and is not None. The factories, getPage and
1857 downloadPage now accept keyword arguments for method, postdata,
1858 and headers. A Content-Length header will be automatically provided
1859 for the given postdata if one isn't already present. Note that
1860 postdata is passed through raw; it is the user's responsibility to
1861 provide a Content-Type header and preformatted postdata. This change
1862 should be backwards compatible.
1864 2003-03-05 Itamar Shtull-Trauring <itamar@itamarst.org>
1866 * twisted/internet/: reactor.run() now accepts a keyword
1867 argument, installSignalHandlers, indicating if signal handlers
1868 should be installed.
1870 2003-03-04 Tommi Virtanen <tv@twistedmatrix.com>
1872 * twisted/scripts/mktap.py, twisted/internet/app.py: mktap now
1873 accepts --uid=0 and --gid=0 to really mean root, has command line
1874 help for --uid=/--gid=, and understands user and group names in
1875 addition to numbers.
1877 2003-03-04 Tommi Virtanen <tv@twistedmatrix.com>
1879 * twisted/scripts/tap2deb.py, doc/man/tap2deb.1: Option --version=
1880 collided with global options, renamed to --set-version=.
1882 2003-03-01 Jp Calderone <exarkun@twistedmatrix.com>
1884 * twisted/scripts/twistd.py: Added --report-profile flag to twistd
1887 2003-02-24 Brian Warner <warner@lothar.com>
1889 * twisted/internet/tcp.py, base.py: set FD_CLOEXEC on all new
1890 sockets (if available), so they will be closed when spawnProcess
1891 does its fork-and-exec.
1893 2003-02-23 Kevin Turner <acapnotic@twistedmatrix.com>
1895 * twisted/scripts/manhole.py: 1.4 manhole now defaults to using a
1896 GTK2 client where available. Start manhole with the "--toolkit gtk1"
1897 parameter if you want the old one back.
1899 2003-2-19 Moshe Zadka <moshez@twistedmatrix.com>
1901 * twisted/web/monitor.py: Monitor web sites.
1903 2003-2-20 Paul Swartz <z3p@twistedmatrix.com>
1905 * twisted/internet/{app,default,interface,unix}.py: Add 'mode' argument
1906 to the listenUNIX interface, which sets the filesystem mode for the
1909 2003-2-18 Christopher Armstrong <radix@twistedmatrix.com>
1911 * .: Release 1.0.4alpha1.
1913 2003-2-18 Moshe Zadka <moshez@twistedmatrix.com>
1915 * twisted/web/server.py twisted/protocols/http.py: Add a way for
1916 resources (and other interested parties) to know when a request has
1917 finished, for normal or abnormal reasons.
1919 2003-02-17 Paul Swartz <z3p@twistedmatrix.com>
1921 * twisted/scripts/conch.py: Added experimental support for connection
1922 caching, where if a connection is already available to a server, the
1923 client will multiplex another session over the existing connection,
1924 rather that creating a new one.
1926 2003-02-16 Jp Calderone <exarkun@twistedmatrix.com>
1928 * doc/examples/echoserv.py: Rewrote main code to not create a .tap
1929 file (examples should be simple, and demonstrate as few things as
1932 * doc/examples/echoclient.py: Added UDP echo protocol
1933 implementation; it is unused by default, but easily enabled.
1935 2003-02-16 Cory Dodt <corydodt@yahoo.com>
1937 * twisted/lore/{latex,default}.py: provide a --config book option
1938 to Lore, for producing book-level documents from an index page.
1940 2003-02-15 Jp Calderone <exarkun@twistedmatrix.com>
1942 * twisted/scripts/mktap.py, twisted/scripts/twistd.py: Added the
1943 --appname and --originalname parameters, respectively.
1945 * twisted/doc/man/mktap.py, twisted/doc/man/twistd.py: Documented
1946 the above two new parameters.
1948 2003-02-12 Kevin Turner <acapnotic@twistedmatrix.com>
1950 * twisted/python/text.py (docstringLStrip): 1.6 This will be going
1951 away in favor of inspect.getdoc.
1953 2003-02-11 Kevin Turner <acapnotic@twistedmatrix.com>
1955 * twisted/im/interfaces.py (IAccount): 1.4 New instance attribute:
1956 "client". Also, added methods getGroup and getPerson.
1958 * twisted/im/basechat.py (ChatUI.getPerson, .getGroup): 1.7 No
1959 longer accept a Class parameter. The class of the person/group is
1960 determined by the account they are obtained through.
1962 * twisted/im/basesupport.py (AbstractPerson, AbstractGroup): 1.15
1963 Hold a reference to account, not client. Also, lose the "chatui"
1964 parameter -- this may require follow-up.
1965 (AbstractAccount.__setstate__): 1.15 remove this method. (Why
1966 was self.port = int(self.port) in __setstate__?)
1967 (AbstractAccount): 1.15 implement getGroup and getPerson here,
1968 using _groupFactory and _personFactory factory attributes.
1970 * twisted/im/gtkchat.py (GtkChatClientUI.getPerson, .getGroup): 1.15
1971 follow ChatUI interface changes.
1973 2003-02-09 Brian Warner <warner@lothar.com>
1975 * twisted/internet/error.py (ProcessDone,ProcessTerminated):
1976 * twisted/internet/process.py (Process.maybeCallProcessEnded,
1977 * twisted/internet/process.py (PTYProcess.maybeCallProcessEnded,
1978 record the signal that killed the process in .signal, set .signal
1979 to None if the process died of natural causes, set .exitCode to None
1980 if the process died of a signal.
1981 * twisted/test/test_process.py: verify .signal, .exitCode are set
1982 to None when they ought to be, verify signal-death is reported with
1983 ProcessTerminated and not ProcessDone
1985 * ChangeLog: Set add-log-time-format to iso8601.
1987 2003-02-09 Christopher Armstrong <radix@twistedmatrix.com>
1989 * .: Releasing 1.0.3rc1.
1991 2003-02-08 Moshe Zadka <moshez@twistedmatrix.com>
1993 * twisted/tap/mail.py twisted/mail/tap.py twisted/plugins.tml:
1994 Moved from tap to mail, trying to thin down twisted.tap a little.
1996 2003-02-07 Moshe Zadka <moshez@twistedmatrix.com>
1998 * twisted/lore/default.py twisted/lore/tree.py twisted/lore/latex.py
1999 twisted/lore/man2lore.py twisted/lore/math.py
2000 twisted/scripts/html2latex.py twisted/scripts/generatelore.py
2001 twisted/scripts/hlint.py twisted/scripts/lore.py bin/lore
2002 bin/generatelore bin/hlint bin/html2latex twisted/plugins.tml:
2003 refactor lore to be cleaner, more usable and more extendible.
2004 Removed old scripts, and combined them into one plugin-based script
2005 which supports Lore, Math-Lore and Man pages and converts to
2006 LaTeX, HTML and (man pages) to Lore.
2008 2003-02-06 Bob Ippolito <bob@redivi.com>
2010 * twisted/protocols/smtp.py: sendEmail supports multipartboundary
2011 keyword argument, which is useful for doing HTML emails if passed
2012 "alternative" as opposed to the default "mixed". Uses 7bit
2013 encoding for mime types that start with 'text', base64 otherwise.
2015 2003-02-04 Jp Calderone <exarkun@twistedmatrix.com>
2017 * twisted/internet/app.py: listenUNIX and unlistenUNIX methods added
2018 to Application class. These should be used in place of listenTCP
2019 and unlistenTCP when UNIX sockets are desired. The old,
2020 undocumented behavior no longer works! Also added connectUDP and
2021 unlistenUDP to Application.
2023 2003-01-31 Cory Dodt <corydodt@yahoo.com>
2025 * twisted/lore/latex.py: Don't treat comments like text nodes, just
2028 2003-01-30 Jp Calderone <exarkun@twistedmatrix.com>
2030 * twisted/internet/default.py
2031 twisted/internet/base.py
2032 twisted/internet/tcp.py
2033 twisted/internet/ssl.py
2034 twisted/internet/udp.py
2035 twisted/internet/unix.py
2037 Refactor of many internal classes, including Clients and
2038 Connectors. UNIX socket functionality moved out of the TCP classes
2039 and into a new module, unix.py, and implementation of IReactorUNIX
2040 by PosixReactorBase made conditional on platform UNIX socket
2041 support. Redundant inheritance cruft removed from various classes.
2043 * twisted/internet/app.py: listenWith, unlistenWith, and connectWith
2044 methods added to Application.
2046 * twisted/internet/interfaces.py: IReactorArbitrary added.
2048 2003-01-30 Kevin Turner <acapnotic@twistedmatrix.com>
2050 * twisted/manhole/service.py (IManholeClient.console): 1.35
2051 exception messages now use a Failure.
2052 (IManholeClient.listCapabilities): 1.35 Method to describe what
2053 capabilities a client has, i.e. "I can receive Failures for
2056 2003-01-29 Donovan Preston <dp@twistedmatrix.com>
2058 * twisted/web/woven/controller.py
2059 twisted/web/woven/template.py
2060 twisted/web/woven/view.py
2061 twisted/web/woven/widgets.py Major woven codepath cleanup
2063 * Uses a flat list of outstanding DOM nodes instead of
2064 recursion to keep track of where Woven is in the page
2067 * Removes View's dependency on DOMTemplate as a base
2068 class, in preparation for deprecation of DOMTemplate
2069 (all of the same semantics are now directly implemented
2070 in View). As a result, View has no base classes, making
2071 the inheritance chain cleaner.
2073 * Stores the namespace stacks (model, view, and controller
2074 name lookup chain) in the View directly, and each widget
2075 gets an immutable reference to it's position in the lookup
2076 chain when it is created, making re-rendering Widgets more
2079 * Represents the namespace stacks as a cons-like tuple
2080 structure instead of mutable python lists, reducing
2081 confusion and list-copying; instead of copying the current
2082 stack lists each time a Widget is created, it just gets a
2083 reference to the current tuples for each of the stacks
2085 2003-01-29 Christopher Armstrong <radix@twistedmatrix.com>
2087 * .: Releasing 1.0.2 Final.
2089 * .: Releasing 1.0.3alpha1. Release Often :-D
2091 2003-01-29 Kevin Turner <acapnotic@twistedmatrix.com>
2093 * twisted/internet/abstract.py (FileDescriptor.__init__): 1.36
2096 * twisted/internet/tcp.py (Port.__getstate__): 1.100 As an
2097 Ephemeral, this needs no __getstate__.
2099 2003-01-27 Kevin Turner <acapnotic@twistedmatrix.com>
2101 * twisted/spread/ui/gtk2util.py (login): Perspective Broker login
2102 dialog for GTK+ version 2.
2104 2003-01-26 Christopher Armstrong <radix@twistedmatrix.com>
2106 * .: Releasing 1.0.2rc1.
2108 * .: Releasing 1.0.2rc2 (rc1 was dead in the water; hlint bug now
2111 * .: Releasing 1.0.2rc3 (rc2 was dead in the water;
2112 twisted.lore.latex bug now fixed)
2114 2003-01-26 Kevin Turner <acapnotic@twistedmatrix.com>
2116 * twisted/im/interfaces.py (IClient.__init__): 1.3 Accept a
2117 logonDeferred parameter. The client should call this back when
2118 it is successfully logged in.
2120 * twisted/im/basesupport.py
2121 (AbstractClientMixin.registerAsAccountClient): 1.13 Gone.
2122 chatui.registerAccountClient is called in AbstractAccount.logOn
2125 2003-01-22 Dave Peticolas <dave@krondo.com>
2127 * twisted/web/xmlrpc.py: add docstring for Proxy. handle
2128 serialization errors. check for empty deferred on connectionLost.
2130 * twisted/test/test_internet.py: make sure wakeUp actually works
2132 2003-01-21 Itamar Shtull-Trauring <itamar@itamarst.org>
2134 * twisted/internet/defer.py: added utility method for
2135 getting result of list of Deferreds as simple list.
2137 2003-1-20 Jp Calderone <exarkun@twistedmatrix.com>
2139 * twisted/internet/interfaces.py: type argument removed from
2140 IReactorCore.resolve method. IReactorPluggableResolver interface
2143 * twisted/internet/base.py: IReactorPluggable added to
2144 ReactorBase.__implements__ and ReactorBase.installResolver added.
2146 2003-1-18 Moshe Zadka <moshez@twistedmatrix.com>
2148 * twisted/trial/unittest.py twisted/scripts/trial.py: adding --summary
2150 2003-01-15 Christopher Armstrong <radix@twistedmatrix.com>
2152 * .: Releasing 1.0.2alpha3.
2154 2003-01-13 Christopher Armstrong <radix@twistedmatrix.com>
2156 * .: Releasing 1.0.2alpha2.
2158 2003-01-11 Itamar Shtull-Trauring <itamar@itamarst.org>
2160 * twisted/protocols/shoutcast.py: add client support for
2161 Shoutcast MP3 streaming protocol.
2163 2003-01-10 Itamar Shtull-Trauring <itamar@itamarst.org>
2165 * twisted/scripts/twistd.py: in debug mode, jump into debugger for any
2168 2003-01-10 Dave Peticolas <dave@krondo.com>
2170 * twisted/trial/unittest.py: enable test cruft checking
2172 * twisted/test/test_policies.py: cleanup timers
2174 * twisted/protocols/policies.py: start/stop bandwidth timers as needed
2176 * twisted/test/test_internet.py: cleanup timers
2178 * twisted/test/test_woven.py: expire sessions to clean up timers
2180 * twisted/web/woven/guard.py: stop timer when session expires
2182 2003-1-9 Moshe Zadka <moshez@twistedmatrix.com>
2184 * twisted/web/google.py: Search google for best matches
2186 2003-01-09 Dave Peticolas <dave@krondo.com>
2188 * twisted/protocols/http.py: start/stop log timer as needed
2190 2003-01-08 Dave Peticolas <dave@krondo.com>
2192 * twisted/test/test_smtp.py: cleanup timers after test
2194 * twisted/trial/unittest.py: keep errors that are logged and
2195 submit them as test failures when tests are finished.
2197 * twisted/python/log.py: if errors are being kept, don't print
2200 2003-1-8 Moshe Zadka <moshez@twistedmatrix.com>
2202 * doc/man/trial.1 twisted/scripts/trial.py: Add -l/--logfile argument
2203 to allow giving a log file.
2205 * twisted/trial/unittest.py: add SkipTest exception, which tests can
2206 raise in their various test* method to skip a test which is not
2209 2003-01-08 Jonathan M. Lange <jml@mumak.net>
2211 * twisted/trial/*, bin/trial, twisted/scripts/trial.py,
2212 doc/man/trial.1: Added 'trial', a new unit testing framework for
2215 * twisted/test/test_*, admin/runtests: Moved existing tests over to
2218 2003-01-06 Glyph Lefkowitz <glyph@twistedmatrix.com>
2220 * twisted/python/microdom.py: Added beExtremelyLenient mode (for
2221 parsing "tag soup"). While this isn't quite as lenient as Mozilla
2222 or IE's code (it will, for example, translate
2223 <div><i><b>foo</i>bar</b></div> to <div><i><b>foo</b></i>bar</div>
2224 ) I am still rather proud of the wide range of complete garbage
2225 that it will mangle into at least reasonably similar XHTML-esque
2228 2003-01-05 Brian Warner <warner@lothar.com>
2230 * twisted/internet/cReactor/*, setup.py: Implement getDelayedCalls for
2231 cReactor. Create cDelayedCall class, implement .cancel(), .reset(),
2232 and .delay() for them.
2234 2003-01-03 Jp Calderone <exarkun@twistedmatrix.com>
2236 * twisted/python/components.py: Fix bug due to interaction between
2237 Componentized subclasses and twisted.python.rebuild.rebuild()
2239 * twisted/python/reflect.py: Removed backwards compatability hack
2240 for deprecated name twisted.protocols.telnet.ShellFactory and empty
2241 oldModules dictionary.
2243 2003-01-02 Brian Warner <warner@lothar.com>
2245 * twisted/test/test_internet.py (DelayedTestCase): add test
2246 coverage for IReactorTime.getDelayedCalls
2248 2002-12-30 Brian Warner <warner@lothar.com>
2250 * pyunit/unittest.py (TestCase.__call__): clean the reactor between
2251 tests: cancel any leftover reactor.callLater() timers. This helps
2252 to keep deferred failures isolated to the test that caused them.
2254 2002-12-30 Paul Swartz <z3p@twistedmatrix.com>
2256 * twisted/conch/*: added docstrings to most conch classes and functions
2258 2002-12-30 Brian Warner <warner@lothar.com>
2260 * twisted/spread/pb.py (Broker.connectionLost): clear localObjects
2261 too, to break a circular reference involving AuthServs that could
2262 keep the Broker (and any outstanding pb.Referenceables) alive
2265 2002-12-29 Jp Calderone <exarkun@twistedmatrix.com>
2267 * twisted/python/compat.py: Single module where all compatability
2268 code for supporting old Python versions should be placed.
2270 2002-12-28 Glyph Lefkowitz <glyph@twistedmatrix.com>
2272 * twisted/web/woven/guard.py: Newer, better wrappers for
2273 authentication and session management. In particular a nice
2274 feature of this new code is automatic negotiation with browsers on
2275 whether cookies are enabled or not.
2277 2002-12-27 Paul Swartz <z3p@twistedmatrix.com>
2279 * bin/tkconch: initial commit of tkconch, a SSH client using Tkinter
2280 as a terminal emulator. puts up a menu to configure when run without
2283 * twisted/conch/ui: moved ansi.py and tkvt100.py to t.c.ui so they are
2284 away from the purely conch stuff.
2286 2002-12-25 Christmas Armstrong <radix@twistedmatrix.com>
2288 * .: Releasing 1.0.2alpha1 - Merry Christmas!
2290 2002-12-25 Jp Calderone <exarkun@twistedmatrix.com>
2292 * twisted/protocols/dict.py: dict client protocol implementation
2293 from Pavel "Pahan" Pergamenshchik (<pp64@cornell.edu>)
2295 2002-12-23 Jp Calderone <exarkun@twistedmatrix.com>
2297 * doc/examples/testdns.py and doc/examples/dns-service.py added as
2298 simple example of how to use new DNS client API.
2300 2002-12-23 Moshe Zadka <moshez@twistedmatrix.com>
2302 * twisted/web/xmlrpc.py: added XML RPC client support
2304 2002-12-22 Paul Swartz <z3p@twistedmatrix.com>
2306 * twisted/conch/ssh/keys.py, twisted/conch/ssh/asn1.py: support for
2307 writing public and private keys.
2309 * bin/ckeygen: new script to create public/private key pairs
2311 2002-12-22 Jp Calderone <exarkun@twistedmatrix.com>
2313 * twisted/protocols/dns.py: Support for AFSDB, RP, and SRV RRs
2316 2002-12-18 Jp Calderone <exarkun@twistedmatrix.com>
2318 * twisted/persisted/dirdbm.py: copyTo and clear methods added
2321 2002-12-18 Paul Swartz <z3p@twistedmatrix.com>
2323 * twisted/conch/ssh/connection.py, twisted/test/test_conch: fixes to
2326 * twisted/internet/process.py: usePTY now can be an optional tuple of
2327 (masterfd, slavefd, ttyname).
2329 2002-12-18 Moshe Zadka <moshez@twistedmatrix.com>
2331 * twisted/web/rewrite.py: it works now, even when used as a rootish
2332 resource. Also, the request.path is massaged.
2334 2002-12-13 Dave Peticolas <dave@krondo.com>
2336 * twisted/enterprise/util.py: support numeric type
2338 2002-12-13 Moshe Zadka <moshez@twistedmatrix.com>
2340 * twisted/web/client.py: add 301/302 support
2342 2002-12-13 Dave Peticolas <dave@krondo.com>
2344 * twisted/test/test_ftp.py: give client time to start up (fixes
2345 one test for gtk/gtk2 reactors)
2347 * twisted/protocols/ftp.py: ftp client in passive mode should not
2348 close data until both command and protocol are finished. (fixes
2349 one test in gtk/gtk2 reactors)
2351 * twisted/internet/gtkreactor.py: remove redundant code
2353 * twisted/internet/gtk2reactor.py: remove redundant code
2355 * twisted/internet/abstract.py: fix spelling in documentation
2357 2002-12-12 Dave Peticolas <dave@krondo.com>
2359 * twisted/test/test_jelly.py: test class serialization
2361 * twisted/spread/jelly.py: join module names with '.' in
2364 2002-12-12 Paul Swartz <z3p@twistedmatrix.com>
2366 * twisted/conch/pamauth.py: added, gives support for authentication
2369 * twisted/conch/*: support for the keyboard-interactive authentication
2370 method which uses PAM.
2372 2002-12-12 Moshe Zadka <moshez@twistedmatrix.com>
2374 * twisted/python/log.py: add setStdout, set logfile to NullFile by
2377 2002-12-11 Donovan Preston <dp@twistedmatrix.com>
2379 * Added new woven example, Hello World.
2381 * Updated woven howto to talk about Hello World. TODO: Finish refactoring
2382 woven quotes example, then write more advanced woven howtos on writing
2383 Widgets and InputHandlers.
2385 2002-12-11 Paul Swartz <z3p@twistedmatix.com>
2387 * twisted/conch/*: enabled 'exec' on the server, disabled core dumps,
2390 2002-12-10 Paul Swartz <z3p@twistedmatrix.com>
2392 * twisted/conch/*: many fixes to conch server, now works and can run
2395 * twisted/conh/ssh/session.py: fix root exploit where a python shell was
2396 left acessable to anyone.
2398 2002-12-10 Cory Dodt <corydodt@yahoo.com>
2400 * t/scripts/postinstall.py: new. Create shortcut icons on win32.
2402 * twisted-post-install.py: new. Runs t/scripts/postinstall.py
2404 * setup.py: copy twisted-post-install.py during install_scripts
2406 2002-12-09 Paul Swartz <z3p@twistedmatrix.com>
2408 * twisted/internet/app.py: actually set the euid/egid if users ask
2410 2002-12-09 Dave Peticolas <dave@krondo.com>
2412 * twisted/test/test_conch.py: wait for ssh process to finish
2414 * twisted/scripts/postinstall.py: fix indentation
2416 * twisted/conch/identity.py: fix indentation
2418 2002-12-09 Paul Swartz <z3p@twistedmatrix.com>
2420 * twisted/conch/ssh/transport.py: don't accept host keys by default
2421 because it's a huge security hole.
2423 2002-12-09 Dave Peticolas <dave@krondo.com>
2425 * twisted/enterprise/util.py: handle None as null
2427 * twisted/internet/interfaces.py: add missing 'self' argument
2429 2002-12-08 Dave Peticolas <dave@krondo.com>
2431 * pyunit/unittest.py: add missing 'self.' prefix to data member
2434 * twisted/enterprise/util.py: make sure quoted values are strings
2435 (fixes bug storing boolean types)
2437 2002-12-06 Dave Peticolas <dave@krondo.com>
2439 * twisted/test/test_internet.py: flush error to prevent failure
2440 with non-destructive DeferredLists.
2442 * twisted/test/test_ftp.py: flush FTPErrors to prevent failures
2443 with non-destructive DeferredLists.
2445 * twisted/test/test_defer.py: catch the errors to prevent failure
2446 with non-destructive DeferredLists
2448 * twisted/enterprise/util.py: add some postgres types. boolean
2449 types need to be quoted. remove unused selectSQL variable.
2451 2002-12-05 Dave Peticolas <dave@krondo.com>
2453 * twisted/enterprise/sqlreflector.py: fix some sql escaping
2454 bugs. allow subclasses to override escaping semantics.
2456 * twisted/enterprise/util.py: allow quote function's string escape
2457 routine to be overridden with a keyword argument.
2459 2002-12-5 Moshe Zadka <moshez@twistedmatrix.com>
2461 * twisted/python/plugin.py: fixed a bug that got the wrong plugins.tml
2462 if the package was installed in two different places
2464 * twisted/inetd/*, twisted/runner/*: moved inetd to runner, to live in
2465 harmony with procmon
2467 2002-12-04 Dave Peticolas <dave@krondo.com>
2469 * twisted/test/test_policies.py: Take the start time timestamp
2470 immediately before creating the ThrottlingFactory, since the
2471 factory starts timing when it is created.
2473 * admin/runtests: Add a 'gtk2' test type to use the gtk2reactor
2476 2002-12-2 Moshe Zadka <moshez@twistedmatrix.com>
2478 * twisted/web/client.py: web client
2480 2002-11-30 Paul Swartz <z3p@twistedmatrix.com>
2482 * Summary of Conch changes: An actual client (bin/conch) which is
2483 mostly compatible with the OpenSSH client. An optional C module to
2484 speed up some of the math operations. A bunch of other stuff has
2485 changed too, but it's hard to summarize a month of work.
2487 2002-11-24 Donovan Preston <dp@twistedmatrix.com>
2489 * twisted/web/woven/*: Added the beginnings of a general framework for
2490 asynchronously updating portions of woven pages that have already been
2491 sent to the browser. Added controller.LiveController, page.LivePage,
2492 and utils.ILivePage to contain code for dealing with keeping Views alive
2493 for as long as the user is still looking at a page and has a live
2494 Session object on the server; code for responding to model changed
2495 notifications, rerendering Views that depend on those models that have
2496 changed; code for sending these rerendered views as html fragments to
2497 the browser; and javascript code to mutate the DOM of the live page
2498 with the updated HTML. Mozilla only for the moment; ie to come soon.
2500 * twisted/web/woven/widgets.py: Added API for attaching Python functions
2501 to widgets that fire when a given javascript event occurs in the
2503 Widget.addEventHandler(self, eventName, handler, *args) and
2504 Widget.onEvent(self, request, eventName, *args). The default onEvent
2505 will dispatch to event handlers registered with addEventHandler.
2507 2002-11-24 Christopher Armstrong <radix@twistedmatrix.com>
2509 * .: Releasing 1.0.1.
2511 2002-11-23 Jp Calderone <exarkun@twistedmatrix.com>
2513 * twisted/names/client.py, twisted/names/server.py: Client and
2514 server domain name APIs
2516 * twisted/tap/dns.py: 'mktap dns'
2518 2002-11-23 Moshe Zadka <moshez@twistedmatrix.com>
2520 * twisted/scripts/twistd.py twisted/python/syslog.py: Add syslog support
2522 2002-11-23 Kevin Turner <acapnotic@twistedmatrix.com>, Sam Jordan <sam@twistedmatrix.com>
2524 * twisted/protocols/irc.py (IRCClient.dccResume, dccAcceptResume):
2525 Methods for mIRC-style resumed file transfers.
2526 (IRCClient.dccDoSend, IRCClient.dccDoResume)
2527 (IRCClient.dccDoAcceptResume, IRCClient.dccDoChat): These are for
2528 clients to override to make DCC things happen.
2529 (IRCClient.dcc_SEND, dcc_ACCEPT, dcc_RESUME, dcc_CHAT)
2530 (IRCClient.ctcpQuery_DCC): Refactored to dispatch to dcc_* methods.
2531 (DccFileReceiveBasic.__init__): takes a resumeOffset
2533 2002-11-20 Christopher Armstrong <radix@twistedmatrix.com>
2535 * .: Releasing 1.0.1rc1
2537 2002-11-16 Itamar Shtull-Trauring <twisted@itamarst.org>
2539 * Multicast UDP socket support in most reactors.
2541 2002-11-11 Glyph Lefkowitz <glyph@twistedmatrix.com>
2543 * .: Releasing 1.0.1alpha4
2545 * .: Releasing 1.0.1alpha3
2547 2002-11-10 Glyph Lefkowitz <glyph@twistedmatrix.com>
2549 * .: Releasing 1.0.1alpha2
2551 * twisted/web/static.py, twisted/tap/web.py: Changed 'mktap web'
2552 to use --ignore-ext .ext so that you can assign order to the
2553 extensions you want to ignore, and not accidentally catch bad
2556 2002-11-04 Itamar Shtull-Trauring <twisted@itamarst.org>
2558 * twisted/internet/tksupport.py: new, better Tkinter integration.
2559 Unlike before, run the reactor as usual, do *not* call Tkinter's
2560 mainloop() yourself.
2562 2002-10-25 Moshe Zadka <moshez@twistedmatrix.com>
2564 * twisted/web/domhelpers.py twisted/python/domhelpers.py
2565 twisted/lore/tree.py twisted/web/woven/widgets.py: Moved domhelpers
2566 to twisted.web, and add to it all the generic dom-query functions
2567 from twisted.lore.tree
2569 * twisted/scripts/generatelore.py twisted/scripts/html2latex.py
2570 bin/html2latex bin/generatelore twisted/lore/__init__.py
2571 twisted/lore/latex.py twisted/lore/tree.py: Add the document generation
2572 Twisted uses internally to the public interface.
2574 * twisted/python/htmlizer.py: a Python->HTML colouriser
2576 2002-10-23 Itamar Shtull-Trauring <twisted@itamarst.org>
2578 * twisted/web/soap.py: experimental SOAP support, using SOAPpy.
2579 See doc/examples/soap.py for sample usage.
2581 2002-10-22 Christopher Armstrong <radix@twistedmatrix.com>
2583 * twisted/python/log.py: Two new features.
2584 1) a stupid `debug' method that simply prefixes a message with "debug"
2585 and indents it so it's easier to distinguish from normal messages.
2586 This can eventually log to some magic "debug channel", once we have
2589 2) implemented a custom warning handler; now warnings look sexy.
2590 (the hackish overriding of warnings.showwarning is the recommended way
2591 to do so, according to the library reference.)
2593 2002-10-22 Moshe Zadka <moshez@twistedmatrix.com>
2595 * setup.py: conditionalize cReactor on threads support too. This
2596 is somewhat of a hack as it it done currently, but it's only necessary
2597 on weird OSes like NetBSD. I assume any UNIX with thread support has
2600 * twisted/internet/tksupport.py: tunable reactor iterate delay
2601 parameter [by Jp Calderone]
2603 2002-10-17 Moshe Zadka <moshez@twistedmatrix.com>
2605 * bin/websetroot twisted/scripts/websetroot.py: Added a program to set
2606 the root of a web server after the tap exists
2608 2002-10-14 Moshe Zadka <moshez@twistedmatrix.com>
2610 * twisted/web/vhost.py: add a virtual host monster to support twisted
2611 sites behind a reverse proxy
2613 * twisted/tap/web.py twisted/web/script.py
2614 doc/man/mktap.1: adding an option to have a resource script as the root
2616 2002-10-13 Moshe Zadka <moshez@twistedmatrix.com>
2618 * twisted/internet/utils.py twisted/internet/process.py
2619 twisted/internet/interfaces.py twisted/internet/default.py: Moved
2620 utility functions into twisted.internet.utils
2622 2002-10-12 Moshe Zadka <moshez@twistedmatrix.com>
2624 * twisted/internet/process.py twisted/internet/interfaces.py
2625 twisted/internet/default.py: Add utility method to get output of
2628 2002-10-11 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
2630 * twisted/internet/wxsupport.py: improved responsiveness of wxPython
2631 GUI (50 FPS instead of 10 FPS).
2633 2002-10-08 Brian Warner <warner@twistedmatrix.com>
2635 * doc/howto: Added PB/cred and Application docs, updated Manhole
2636 and Process docs. Moved Manhole from "Administrators" section to
2637 "Developers" section.
2639 2002-10-10 Moshe Zadka <moshez@twistedmatrix.com>
2641 * .: Releasing 0.99.4
2643 2002-10-07 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
2645 * .: Release 0.99.4rc1
2647 * twisted/protocols/http.py: backed out changes to HTTP that
2648 broke 0.99.3 twisted.web.distrib.
2650 2002-10-7 Moshe Zadka <moshez@twistedmatrix.com>
2652 * twisted/web/script.py: Add ResourceTemplate which uses PTL for
2653 creation of resources.
2655 2002-10-7 Moshe Zadka <moshez@twistedmatrix.com>
2657 * twisted/tap/web.py: It is now possibly to add processors via
2661 2002-10-04 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
2663 * twistd: when running in debug mode (-b), sending a SIGINT signal
2664 to the process will drop into the debugger prompt.
2666 2002-10-5 Moshe Zadka <moshez@twistedmatrix.com>
2668 * .: Releasing 0.99.3
2670 2002-10-01 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
2672 * twisted/protocols/http.py: Fixed many bugs in protocol parsing,
2673 found by new unit tests.
2675 2002-9-30 Moshe Zadka <moshez@twistedmatrix.com>
2677 * twisted/protocols/sux.py twisted/web/microdom.py: Made is possible
2678 to sanely handle parse errors
2680 2002-09-26 Kevin Turner <acapnotic@twistedmatrix.com>
2682 * twisted/internet/app.py (_AbstractServiceCollection.removeService):
2683 (MultiService.removeService): inverse of addService
2684 (ApplicationService.disownServiceParent): inverse of setServiceParent
2686 2002-9-27 Moshe Zadka <moshez@twistedmatrix.com>
2688 * .: Releasing 0.99.2
2690 2002-09-26 Glyph Lefkowitz <glyph@twistedmatrix.com>
2692 * twisted/web/microdom.py: Better string formatting of XML
2693 elements is now available, to aid with debugging of web.woven
2694 (among other applications).
2696 2002-09-25 Kevin Turner <acapnotic@twistedmatrix.com>
2698 * twisted/tap/manhole.py: mktap manhole will now prompt for a
2699 password or accept one from stdin if one is not provided on the
2702 2002-09-25 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
2704 * bin/tapconvert: made sure tapconvert program gets installed.
2706 2002-09-24 Kevin Turner <acapnotic@twistedmatrix.com>
2708 * twisted/web/resource.py (Resource.wasModifiedSince): revoked,
2709 not adding this after all. Instead,
2711 * twisted/protocols/http.py (Request.setLastModified)
2712 (Request.setETag): these methods to set cache validation headers
2713 for the request will return http.CACHED if the request is
2714 conditional and this setting causes the condition to fail.
2716 2002-9-24 Moshe Zadka <moshez@twistedmatrix.com>
2718 * .: Releasing 0.99.2rc2
2720 2002-9-23 Donovan Preston <dp@twistedmatrix.com>
2722 * Renaming domtemplate/domwidgets/dominput/wmvc to Woven
2723 Woven - The Web Object Visualization Environment
2725 * Created package twisted/web/woven
2727 * Renamed domtemplate to template, domwidgets to widgets,
2728 and dominput to input
2730 * Refactored wmvc into three modules, model, view, and controller
2732 2002-9-23 Moshe Zadka <moshez@twistedmatrix.com>
2734 * twisted/spread/pb.py: add getObjectAtSSL, refactored into
2735 getObjectRetreiver so more transports can be easily supported
2737 2002-09-21 Kevin Turner <acapnotic@twistedmatrix.com>
2739 * twisted/protocols/http.py (Request.setLastModified): Use
2740 setLastModified to set a timestamp on a http.Request object, and
2741 it will add a Last-Modified header to the outgoing reply.
2743 * twisted/web/resource.py (Resource.wasModifiedSince): companion
2744 method, override this to get sensible handling of
2745 If-Modified-Since conditional requests.
2747 2002-09-21 Glyph Lefkowitz <glyph@twistedmatrix.com>
2749 * twisted/web/static.py, twisted/web/script.py: Previously, it was
2750 not possible to use the same xmlmvc application (directory full
2751 of files and all) to interface to separate instances in the same
2752 server, without a considerable amount of hassle. We have
2753 introduced a new "Registry" object which is passed to all .rpy
2754 and .epy scripts as "registry" in the namespace. This is a
2755 componentized, so it can be used to associate different
2756 components for the same interface for different File instances
2757 which represent the same underlying directory.
2759 2002-09-20 Glyph Lefkowitz <glyph@twistedmatrix.com>
2761 * twisted/web/microdom.py: You can now specify tags that the
2762 parser will automatically close if they are not closed
2763 immediately. This is to support output from HTML editors which
2764 will not output XML, but still have a predictable
2765 almost-but-not-quite XML structure. Specifically it has been
2766 tested with Mozilla Composer.
2768 2002-9-20 Moshe Zadka <moshez@twistedmatrix.com>
2770 * Documenting for others
2772 * setup.py: now setup.py can function as a module
2774 * twisted/enterprise/xmlreflector.py: deprintified
2776 * twisted/internet/abstract.py, twisted/internet/fdesc.py,
2777 twisted/internet/app.py, twisted/internet/gtkreactor.py,
2778 twisted/internet/main.py, twisted/internet/protocol.py,
2779 twisted/internet/ssl.py, twisted/internet/tksupport.py,
2780 twisted/internet/pollreactor.py, twisted/internet/defer.py:
2781 added and modified __all__
2783 * twisted/internet/base.py: changed ReactorBase's __name__, added
2786 * twisted/internet/default.py, twisted/internet/error.py,
2787 twisted/internet/process.py,
2788 twisted/internet/win32eventreactor.py: reaping all processes on
2789 SIGCHLD, changes in process's API
2791 * twisted/python/components.py: added Adapter and setComponent
2793 * twisted/python/log.py: logging several strings works
2795 * twisted/python/reflect.py: fixed namedModule() to handle packages
2797 * twisted/web/dom*.py: added submodels, moved to microdom, removed
2800 * twisted/python/mvc.py: changed submodel support, added ListModel,
2803 * twisted/web/microdom.py: minidom compat fixes
2805 2002-9-20 Jp Calderone <exarkun@twistedmatrix.com>
2807 * twisted/internet/error.py twisted/internet/process.py:
2808 ProcessEnded -> ProcessTerminated/ProcessDone. Now it is possible
2809 to read off the error code.
2811 2002-9-19 Moshe Zadka <moshez@twistedmatrix.com>
2813 * twisted/scripts/twistd.py: Added ability to chroot. Moved directory
2814 change to after loading of application.
2816 2002-9-19 Moshe Zadka <moshez@twistedmatrix.com>
2818 * twisted/*: changed print to log.msg
2820 * bin/* twisted/scripts/*.py: move code from bin/ to modules
2822 * twisted/inetd/*.py: inetd server in twisted
2824 * twisted/protocols/sux.py twisted/web/microdom.py: XML parsing
2826 * twisted/conch/*.py: better logging and protocol support
2828 * twisted/cred/*.py: deprecation fixes
2830 * twisted/internet/app.py: add encryption
2832 * twisted/internet/base.py: fix deprecation, add DelayedCall,
2833 move to connect* from client*
2835 * twisted/internet/error.py: errno mapping works on more platforms,
2836 AlreadyCalled, AlreadyCancelled errors
2838 * twisted/internet/gtkreactor.py: try requiring gtk1.2, timeout->idle
2840 * twisted/internet/interfaces.py: added IDelayedCall IProcessTransports
2842 * twisted/internet/javareactor.py: using failure, better dealing with
2843 connection losing, new connect* API
2845 * twisted/internet/process.py: dealing better with ending
2847 * twisted/internet/protocol.py: factories have a "noisy" attribute,
2848 added ReconnectingClientFactory BaseProtocol
2850 * twisted/internet/ptypro.py: fixed traceback
2852 * twisted/internet/reactor.py: better guessing of default
2854 * twisted/internet/tcp.py: failure
2856 * twisted/internet/win32eventreactor.py: update to new API, support GUI
2858 * twisted/manhole/service.py: fix deprecation
2860 * twisted/news/database.py: fix to be 2.1 compat., generating
2861 message-id, bytes, lines, date headers, improved storage
2863 * twisted/news/news.py: UsenetClientFactory, UsenetServerFactory
2865 * twisted/persisted/marmalade.py: use twisted.web.microdom
2867 * twisted/protocols/ftp.py: dito, data port uses new client API
2869 * twisted/protocols/http.py: StringTransport instead of StringIO
2871 * twisted/protocols/irc.py: stricter parsing, avoid flooding
2873 * twisted/protocols/loopback.py: new reactor API, loopback over UNIX
2876 * twisted/protocols/nntp.py: more lenient parsing, more protocol support
2878 * twisted/protocols/oscar.py: new reactor API
2880 * twisted/python/components.py: fix setAdapter add removeComponent
2882 * twisted/python/failure.py: cleanFailure
2884 * twisted/python/log.py: can now log multiple strings in one go
2886 * twisted/python/logfile.py: fixed rotation
2888 * twisted/python/rebuild.py: better 2.2 support
2890 * twisted/python/util.py: getPassword
2892 * twisted/scripts/mktap.py: better --help, --type, encryption
2894 * twisted/spread/*.py: removed deprecation warnings
2896 * twisted/spread/util.py: improved Pager
2898 * twisted/tap/news.py: works saner now
2900 * twisted/tap/ssh.py: can specify authorizer
2902 * twisted/tap/words.py: can bind services to specific interfaces
2904 * twisted/web/distrib.py: now works on java too
2906 * twisted/web/domtemplate.py: improved cache
2908 * twisted/web/error.py: ForbiddenResource
2910 * twisted/web/html.py: lower-case tags
2912 * twisted/web/server.py: use components
2914 * twisted/web/static.py: added .flac, .ogg, properly 404/403,
2917 * twisted/web/twcgi.py: fixed for new process API
2919 * twisted/web/widgets.py: lower-case tags
2921 * twisted/web/xmlrpc.py: new abstraction for long running xml-rpc
2922 commands, add __all__
2924 * twisted/words/ircservice.py: new connectionLost API
2926 * twisted/words/service.py: refactoring and error handling
2928 * twisted/words/tendril.py: lots of fixes, it works now
2930 2002-09-17 Donovan Preston <dp@twistedmatrix.com>
2932 * Added better error reporting to WebMVC. To do this, I had to
2933 remove the use of "class" and "id" attributes on nodes as
2934 synonyms for "model", "view", and "controller". Overloading
2935 these attributes for three purposes, not to mention their
2936 usage by JavaScript and CSS, was just far too error-prone.
2938 2002-09-09 Andrew Bennetts <spiv@twistedmatrix.com>
2940 * twisted.inetd: An inetd(8) replacement. TCP support should be
2941 complete, but UDP and Sun-RPC support is still buggy. This was
2942 mainly written as a proof-of-concept for how to do a forking
2943 super-server with Twisted, but is already usable.
2945 2002-08-30 Christopher Armstrong <radix@twistedmatrix.com>
2947 * Releasing Twisted 0.99.1rc4. There was a bug in the acquisition
2948 code, as well as a typo in TwistedQuotes.
2950 2002-08-29 Christopher Armstrong <radix@twistedmatrix.com>
2952 * Releasing Twisted 0.99.1rc3. A bug in the release script
2953 left .pyc files in the tarball.
2955 2002-08-29 Christopher Armstrong <radix@twistedmatrix.com>
2957 * Releasing Twisted 0.99.1rc2. There was a bug with circular
2958 imports between modules in twisted.python.
2960 2002-08-28 Christopher Armstrong <radix@twistedmatrix.com>
2962 * Releasing Twisted 0.99.1rc1.
2964 2002-08-27 Donovan Preston <dp@twistedmatrix.com>
2966 * twisted.web.domtemplate: Look up templates in the directory of
2967 the module containing the DOMTemplate doing the lookup before
2968 going along with regular acquisition.
2970 2002-08-27 Glyph Lefkowitz <glyph@twistedmatrix.com>
2972 * twisted.*: Lots of minor fixes to make JavaReactor work again.
2974 2002-08-26 Andrew Bennetts <andrew-twisted@puzzling.org>
2976 * twisted.python.logfile: Added the ability to disable log
2977 rotation if logRotation is None.
2979 2002-08-22 Jp Calderone <exarkun@twistedmatrix.com>
2981 * twisted.news: Added a decent RDBM storage backend.
2983 2002-08-21 Paul Swartz <z3p@twistedmatrix.com>
2985 * doc/howto/process.html: Process documentation, too!
2987 2002-08-20 Paul Swartz <z3p@twistedmatrix.com>
2989 * doc/howto/clients.html: Client-writing documentation.
2991 2002-08-20 Jp Calderone <exarkun@twistedmatrix.com>
2993 * twisted.protocols.nntp: More protocol implemented: SLAVE, XPATH,
2994 XINDEX, XROVER, TAKETHIS, and CHECK.
2996 2002-08-19 Christopher Armstrong <radix@twistedmatrix.com>
2998 * bin, twisted.scripts.*: Migrated all bin/* scripts'
2999 implementations to twisted/scripts. This means win32 users will
3000 finally have access to all of the twisted scripts through .bat
3003 2002-08-19 Jp Calderone <exarkun@twistedmatrix.com>
3005 * twisted.news, twisted.protocols.nntp: Additional RFC977 support:
3006 HELP and IHAVE implemented.
3008 2002-08-19 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3010 * twisted.internet.{process,win32eventreactor,etc}: New and
3011 hopefully final Process API, and improved Win32 GUI support.
3013 2002-08-18 Christopher Armstrong <radix@twistedmatrix.com>
3015 * Everything: Got rid of almost all usage of the `print' statement
3016 as well as any usage of stdout. This will make it easier to
3017 redirect boring log output and still write to stdout in your
3020 2002-08-18 Christopher Armstrong <radix@twistedmatrix.com>
3022 * Releasing Twisted 0.99.0 final. No changes since rc9.
3024 2002-08-17 Christopher Armstrong <radix@twistedmatrix.com>
3026 * Releasing Twisted 0.99.0rc8, with a fix to tap2deb and
3027 slightly updated options documentation.
3029 * Releasing Twisted 0.99.0rc9 with fixes to release-twisted
3030 and doc/howto/options.html.
3032 2002-08-16 Christopher Armstrong <radix@twistedmatrix.com>
3034 * Releasing Twisted 0.99.0rc6, with some fixes to setup.py
3035 * Releasing Twisted 0.99.0rc7, __init__.py fixes.
3037 2002-08-15 Christopher Armstrong <radix@twistedmatrix.com>
3039 * Releasing Twisted 0.99.0rc5, with some one severe bug-fix and
3042 2002-08-14 Christopher Armstrong <radix@twistedmatrix.com>
3044 * Releasing Twisted 0.99.0rc1! ON THE WAY TO 1.0, BABY!
3045 * Releasing Twisted 0.99.0rc2! Sorry, typoed the version number in
3047 * Releasing Twisted 0.99.0rc3! I HATE TAGGING!
3048 * Releasing Twisted 0.99.0rc4, some very minor errors fixed.
3050 2002-08-14 Glyph Lefkowitz <glyph@twistedmatrix.com>
3052 * twisted.internet, twisted.cred: Applications and Authorizers are
3053 now completely decoupled, save for a tiny backwards-compatibility.
3055 2002-08-10 Christopher Armstrong <radix@twistedmatrix.com>
3057 * twisted.internet.defer, twisted.python.failure: Changes to
3058 Deferred and Failure to make errbacks more consistent. error
3059 callbacks are now *guaranteed* to be passed a Failure instance,
3060 no matter what was passed to Deferred.errback().
3062 2002-08-07 Jp Calderone <exarkun@twistedmatrix.com>
3064 * twisted.python.usage: New "subcommands" feature for
3065 usage.Options: Now, you can have nested commands
3066 (`cvs commit'-style) for your usage.Options programs.
3068 2002-08-04 Bruce Mitchener <bruce@twistedmatrix.com>
3070 * twisted.internet: New `writeSequence' method on transport
3071 objects: This can increase efficiency as compared to `write`ing
3072 concatenated strings, by copying less data in memory.
3074 2002-08-02 Glyph Lefkowitz <glyph@twistedmatrix.com>
3076 * twisted.cred.service, twisted.internet.app: Application/Service
3077 refactor: These two things should be less dependant on each other,
3080 2002-07-31 Glyph Lefkowitz <glyph@twistedmatrix.com>
3082 * twisted.issues: After weeks of hacking in the secret (Austin,
3083 TX) hideout with Allen Short, twisted.issues, the successor to
3084 Twisted Bugs, is born. Featuring a paranoia-inducing chat-bot
3087 2002-07-30 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3089 * twisted.internet.kqueue: Thanks to Matt Campbell, we now have a
3090 new FreeBSD KQueue Reactor.
3092 2002-07-27 Christopher Armstrong <radix@twistedmatrix.com>
3094 * doc/fun/Twisted.Quotes: Added our seekrut Twisted.Quotes file to
3097 2002-07-26 Glyph Lefkowitz <glyph@twistedmatrix.com>
3099 * twisted.spread: "Paging" for PB: this is an abstraction for
3100 sending big streams of data across a PB connection.
3103 2002-07-23 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3105 * twisted.internet: Rewrite of client APIs. `reactor.clientXXX'
3106 methods are now deprecated. See new reactor.connect*
3107 documentation. Also Application-level client methods have been
3108 reworked, see the Application documentation.
3110 2002-07-23 Bryce Wilcox-O'Hearn <zooko@twistedmatrix.com>
3112 * twisted.zoot: Application-level implementation of Gnutella.
3114 2002-07-21 Glyph Lefkowitz <glyph@twistedmatrix.com>
3116 * twisted.im, bin/im: GUI improvements to t-im, and renamed
3117 bin/t-im to bin/im (and get rid of old twisted.words client).
3119 2002-07-15 Bryce Wilcox-O'Hearn <zooko@twistedmatrix.com>
3121 * twisted.protocols.gnutella: Twisted now has an implementation of
3122 the Gnutella protocol.
3124 2002-07-15 Sean Riley <sean@twistedmatrix.com>
3126 * twisted.sister: Now featuring distributed login.
3128 2002-07-15 Paul Swartz <z3p@twistedmatrix.com>
3130 * twisted.conch: A new implementation of ssh2, bringing Twisted
3131 one step closer to being a complete replacement of all unix
3134 2002-07-14 Christopher Armstrong <radix@twistedmatrix.com>
3136 * Releasing Twisted 0.19.0! It's exactly the same as rc4.
3138 2002-07-13 Christopher Armstrong <radix@twistedmatrix.com>
3140 * Releasing Twisted 0.19.0rc4. All Known Issues in the README have
3141 been fixed. This will hopefully be the last release candidate for
3144 2002-07-07 Christopher Armstrong <radix@twistedmatrix.com>
3146 * Releasing Twisted 0.19.0rc3.
3148 2002-07-07 Christopher Armstrong <radix@twistedmatrix.com>
3150 * Releasing Twisted 0.19.0rc2.
3152 2002-07-07 Christopher Armstrong <radix@twistedmatrix.com>
3154 * Releasing Twisted 0.19.0rc1.
3156 2002-07-07 Keith Zaback <krz@twistedmatrix.com>
3158 * twisted.internet.cReactor: A new poll-based reactor written in
3159 C. This is still very experimental and incomplete.
3161 2002-07-07 Donovan Preston <dp@twistedmatrix.com>
3163 * twisted.web.dom*: Better support in domtemplate/domwidgets etc
3164 for Deferreds and Widgets. Also deprecated getTemplateMethods
3165 method in favor of automatically looking up methods on the class
3166 based on the attributes found in the template. There are some
3167 minimal docs already, and better ones coming soon.
3169 2002-06-26 Glyph Lefkowitz <glyph@twistedmatrix.com>
3171 * twisted.internet.process,interfaces,default: Process now
3172 supports SetUID: there are new UID/GID arguments to the process
3173 spawning methods/constructors.
3175 2002-06-22 Paul Swartz <z3p@twistedmatrix.com>
3177 * twisted.protocols.oscar: totally rewrote OSCAR protocol
3180 2002-06-18 Glyph Lefkowitz <glyph@twistedmatrix.com>
3182 * twisted.internet.defer: Deprecated the arm method of Deferred
3183 objects: the replacement is a pair of methods, pause and
3184 unpause. After the pause method is called, it is guaranteed that
3185 no call/errbacks will be called (at least) until unpause is
3188 2002-06-10 Christopher Armstrong <radix@twistedmatrix.com>
3190 * twisted/persisted/aot.py, bin/twistd,mktap, twisted/internet/app.py:
3192 AOT (Abstract Object Tree) experimental source-persistence
3193 mechanism. This is a more-concise, easier-to-edit alternative to
3194 Twisted's XML persistence, for people who know how to edit Python
3195 code. Also added appropriate options to mktap and twistd to
3196 load/save .tas (Twisted Application Source) files.
3198 I will be working on making the formatting better, soon, but it's
3201 2002-06-08 Glyph Lefkowitz <glyph@twistedmatrix.com>
3203 * twisted.internet, twisted.tap.web: Add a --https and related
3204 options to 'mktap web'; web is now much more SSL-friendly.
3207 2002-06-02 Itamar Shtull-Trauring <twisted@itamarst.org>
3209 * twisted.internet: changed protocol factory interface - it now has
3210 doStop and doStart which are called in reactors, not app.Application.
3211 This turns start/stopFactory into an implementation-specific feature,
3212 and also ensures they are only called once.
3214 2002-06-01 Christopher Armstrong <radix@twistedmatrix.com>
3216 * .: Releasing Twisted 0.18.0
3218 2002-05-31 Christopher Armstrong <radix@twistedmatrix.com>
3220 * twisted/coil/plugins/portforward.py, twisted/tap/portforward.py:
3221 Forgot to add these before rc1 :-) You can use the portforwarder
3222 with Coil and mktap again (previously "stupidproxy")
3224 * twisted/web/static.py: Fixed a bunch of bugs related to redirection
3227 * .: Releasing Twisted 0.18.0rc2
3229 2002-05-30 Glyph Lefkowitz <glyph@twistedmatrix.com>
3231 * Twisted no longer barfs when the Python XML packages aren't available.
3233 2002-05-29 Christopher Armstrong <radix@twistedmatrix.com>
3235 * .: Releasing Twisted 0.18.0rc1
3237 2002-05-25 Christopher Armstrong <radix@twistedmatrix.com>
3239 * twisted/spread/pb.py, twisted/internet/defer.py,
3240 twisted/python/failure.py, etc:
3242 Perspective broker now supports Failures! This should make writing
3243 robust PB clients *much* easier. What this means is that errbacks will
3244 recieve instances of t.python.failure.Failure instead of just strings
3245 containing the traceback -- so you can easily .trap() particular
3246 errors and handle them appropriately.
3248 2002-05-24 Itamar Shtull-Trauring, Moshe Zadka <moshez@twistedmatrix.com>
3250 * twisted.mail cleanups:
3252 * basic bounce support.
3254 * removed telnet from mail tap
3256 * mail domains now receive service in __init__
3258 * split file system stuff into Queue (renamed from
3261 * Put a Queue in service
3263 * twisted/protocol/smtp.py: changed SMTPClient API so that it returns
3264 a file for the message content, instead of a string.
3266 2002-05-23 Glyph Lefkowitz <glyph@twistedmatrix.com>
3268 * Twisted applications can now be persisted to XML files (.tax) with
3269 the --xml option -- this is pretty verbose and needs some optimizations.
3271 2002-05-22 Glyph Lefkowitz <glyph@twistedmatrix.com>
3273 * twisted/persisted/marmalade.py: Marmalade: Jelly, with just a hint
3274 of bitterness. An XML object serialization module designed so
3275 people can hand-edit persisted objects (like Twisted Applications).
3277 2002-05-21 Itamar Shtull-Trauring <twisted@itamarst.org>
3279 * twisted/internet/gtkreactor.py: GTK+ support for win32; input_add
3280 is not supported in win32 and had to be worked around.
3282 2002-05-20 Itamar Shtull-Trauring <twisted@itamarst.org>
3284 * twisted/pythor/defer.py, twisted/protocols/protocol.py,
3285 twisted/internet/defer.py, twisted/internet/protocol.py:
3287 Moved defer and protocol to twisted.internet to straighten
3290 2002-05-18 Glyph Lefkowitz <glyph@twistedmatrix.com>
3292 * twisted/metrics, twisted/forum: Metrics and Forum are no longer
3293 a part of Twisted proper; They are now in different CVS modules, and
3294 will be released separately.
3296 2002-05-15 Andrew Bennetts <andrew-twisted@puzzling.org>
3298 * twisted/protocols/ftp.py: Small fixes to FTPClient that have
3299 changed the interface slightly -- return values from callbacks
3300 are now consistent for active and passive FTP. Have a look at
3301 doc/examples/ftpclient.py for details.
3303 2002-05-12 Itamar Shtull-Trauring <twisted@itamarst.org>
3305 * doc/specifications/banana.html: Documentation of the Banana protocol.
3307 2002-05-06 Glyph Lefkowitz <glyph@twistedmatrix.com>
3309 * twisted/im/gtkchat.py: Some more UI improvements to InstanceMessenger:
3310 Nicks are now colorful (each nick is hashed to get a color) and
3311 messages now have timestamps.
3313 2002-05-04 Glyph Lefkowitz <glyph@twistedmatrix.com>
3315 * Reactor Refactor! Pretty much all of the twisted.internet.* classes
3316 are being depracated in favor of a single, central class called the
3317 "reactor". Interfaces are defined in twisted.internet.interfaces.
3318 For a much more descriptive comment about this change, see
3319 http://twistedmatrix.com/pipermail/twisted-commits/2002-May/002104.html.
3321 2002-05-04 Glyph Lefkowitz <glyph@twistedmatrix.com>
3323 * twisted/spread/pb.py: There is now some resource limiting in PB.
3324 Clients can now have the number of references to an object limited.
3326 2002-04-29 Glyph Lefkowitz <glyph@twistedmatrix.com>
3328 * twisted/im/*: Refactored Twisted InstanceMessenger to seperate GUI
3329 and logic. Also improved the UI a bit.
3331 2002-04-28 Itamar Shtull-Trauring <twisted@itamarst.org>
3333 * twisted/protocols/http.py: log hits using extended log format
3334 and make web taps logfile configurable.
3336 2002-04-26 Itamar Shtull-Trauring <twisted@itamarst.org>
3338 * twisted/lumberjack/logfile.py: reversed order of rotated
3339 logs - higer numbers are now older.
3341 2002-04-24 Itamar Shtull-Trauring <twisted@itamarst.org>
3343 * doc/examples/ircLogBot.py: We now have a sample IRC bot that logs
3344 all messages to a file.
3346 2002-04-24 Itamar Shtull-Trauring <twisted@itamarst.org>
3348 * twisted/python/components.py: Twisted's interfaces are now
3349 more like Zope's - __implements__ is an Interface subclass
3350 or a tuple (or tuple of tuples). Additonally, an instance can
3351 implement an interface even if its class doesn't have an
3354 2002-04-22 Glyph Lefkowitz <glyph@twistedmatrix.com>
3356 * twisted/python/usage.py: Minor niceties for usage.Options:
3357 You can now look up the options of an Options object with
3358 optObj['optName'], and you if you define opt_* methods with
3359 underscores in them, using dashes on the command line will work.
3361 2002-04-21 Chris Armstrong <carmstro@twistedmatrix.com>
3363 * twisted/scripts/mktap.py: No more --manhole* options, use
3364 '--append=my.tap manhole' now.
3366 2002-04-20 Chris Armstrong <carmstro@twistedmatrix.com>
3368 * .: Releasing Twisted 0.17.4.
3370 * twisted/internet/tcp.py: Make unix domain sockets *really*
3371 world-accessible, rather than just accessible by "other".
3373 2002-04-19 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3375 * twisted/web/{server,twcgi}.py: Fixed POST bug in distributed
3378 2002-04-19 Chris Armstrong <carmstro@twistedmatrix.com>
3380 * .: Releasing Twisted 0.17.3.
3382 2002-04-19 Glyph Lefkowitz <carmstro@twistedmatrix.com>
3384 * twisted/web/distrib.py: Fix a bug where static.File transfers
3385 over a distributed-web connection would not finish up properly.
3387 2002-04-18 Chris Armstrong <carmstro@twistedmatrix.com>
3389 * .: Releasing Twisted 0.17.2.
3391 2002-04-18 Chris Armstrong <carmstro@twistedmatrix.com>
3393 * twisted/news: A news server and NNTP protocol support courtesy of
3394 exarkun. Another step towards Twisted implementations of EVERYTHING
3397 2002-04-17 Glyph Lefkowitz <glyph@twistedmatrix.com>
3399 * twisted/spread/pb.py: Errors during jelly serialization used to
3400 just blow up; now they more properly return a Deferred Failure. This
3401 will make hangs in PB apps (most notably distributed web) less common.
3403 2002-04-17 Donovan Preston <dp@twistedmatrix.com>
3405 * Major changes to the capabilities of the static web server, in an
3406 attempt to be able to use Twisted instead of Zope at work; my plan is to
3407 capture many of the conveniences of Zope without the implicitness and
3408 complexity that comes with working around implicit behavior when it fails.
3410 1) .trp and .rpy support in the static web server:
3411 Very simple handlers to allow you to easily add Resource objects
3412 dynamically to a running server, by merely changing files on the
3414 An .rpy file will be executed, and if a "resource" variable exists upon the
3415 execution's completion, it will be returned.
3416 A .trp file (twisted resource pickle) will be unpickled and returned. An
3417 object unpickled from a .trp should either implement IResource itself,
3418 or have a registered adapter in twisted.python.components.
3421 As resources are being looked up by repeated calls to getChild, this
3422 change creates instances of
3423 twisted.spread.refpath.PathReferenceAcquisitionContext and puts
3424 them in the request as "request.pathRef"
3425 Any method that has an instance of the request can then climb up
3426 the parent tree using "request.pathRef['parentRef']['parentRef']
3427 PathReferenceAcquisitionContext instances can be dereferenced to the
3428 actual object using getObject
3429 Convenience method: "locate" returns a PathReference to first place
3430 in the parent heirarchy a name is seen
3431 Convenience method: "acquire" somewhat like Zope acquisition;
3432 mostly untested, may need fixes
3434 3) DOM-based templating system:
3435 A new templating system that allows python scripts to use the DOM
3436 to manipulate the HTML node tree. Loosely based on Enhydra.
3437 Subclasses of twisted.web.domtemplate.DOMTemplate can override
3438 the templateFile attribute and the getTemplateMethods method;
3439 ultimately, while templateFile is being parsed, the methods
3440 specified will be called with instances of xml.dom.mindom.Node
3441 as the first parameter, allowing the python code to manipulate
3442 (see twisted.web.blog for an example)
3444 2002-04-17 Chris Armstrong <carmstro@twistedmatrix.com>
3446 * twisted/web/static.py, twisted/tap/web.py: Added a new feature
3447 that allows requests for /foo to return /foo.extension, which is
3448 disabled by default. If you want a --static webserver that
3449 uses this feature, use 'mktap web --static <dir> --allow_ignore_ext'.
3451 * twisted/tap/web.py: Also switched --static to --path; it doesn't
3452 make sense to call something that automatically executes cgis, epys,
3453 rpys, php, etc., "static". :-)
3455 2002-04-14 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3457 * HTTP 1.1 now supports persistent and pipelined connections.
3459 User-visible API changes:
3460 - Request.content is now a file-like object, instead of a string.
3461 - Functions that incorrectly used Request.received instead of
3462 Request.getAllHeaders() will break.
3463 - sendHeader, finishHeaders, sendStatus are all hidden now.
3465 2002-04-12 Kevin Turner <acapnotic@twistedmatrix.com>
3467 * twisted/coil/plugins/tendril.py (TendrilConfigurator): New coil
3468 configurator for words.tendril.
3470 2002-04-10 Chris Armstrong <carmstro@twistedmatrix.com>
3472 * .: Releasing Twisted 0.17.0
3474 2002-04-10 Chris Armstrong <carmstro@twistedmatrix.com>
3476 * twisted/bugs: Gone. Separate plugin package.
3477 * twisted/eco: Gone. The king is dead. Long live the king!
3478 (eco is no longer going to be developed, Pyrex has obviated it.)
3480 2002-04-10 Chris Armstrong <carmstro@twistedmatrix.com>
3482 * twisted/protocols/irc.py: Some fix-ups to IRCClient and
3483 DccFileReceive, from Joe Jordan (psy).
3485 2002-04-10 Chris Armstrong <carmstro@twistedmatrix.com>
3487 * twisted/reality: Gone. This is now in a completely separate plugin
3490 2002-04-09 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3492 * win32 process support seems to *finally* be working correctly. Many
3493 thanks to Drew Whitehouse for help with testing and debugging.
3495 2002-04-08 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3497 * coil refactored yet again, this time to use components and adapters.
3498 The design is now much cleaner.
3500 2002-04-08 Glyph Lefkowitz <glyph@zelda.twistedmatrix.com>
3502 * twisted/spread/jelly.py: Refactored jelly to provide (a) more
3503 sane, language-portable API for efficient extensibility and (b)
3504 final version of "wire" protocol. This should be very close to
3505 the last wire-protocol-breaking change to PB before
3506 standardization happens.
3508 2002-04-04 Glyph Lefkowitz <glyph@twistedmatrix.com>
3510 * Removed __getattr__ backwards compatibility in PB
3512 2002-04-03 Chris Armstrong <carmstro@twistedmatrix.com>
3514 * twisted/python/usage.py, twisted/test/test_usage.py, bin/mktap, twisted/tap/*.py:
3515 Made the usage.Options interface better -- options are now stored in the
3516 'opts' dict. This is backwards compatible, and I added a deprecation warning.
3518 2002-04-01 Chris Armstrong <carmstro@twistedmatrix.com>
3520 * .: Releasing Twisted 0.16.0.
3522 2002-03-29 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3524 * Added Qt event loop support, written by Sirtaj Singh Kang and
3525 Aleksandar Erkalovic.
3527 2002-03-29 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3529 * Added a 'coil' command for configuring TAP files
3531 2002-03-15 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3533 * XML-RPC published methods can now return Deferreds, and Twisted
3534 will Do The Right Thing.
3536 2002-03-13 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3538 * Refactored coil, the configuration mechanism for Twisted.
3539 See twisted.coil and twisted.coil.plugins for examples of how
3540 to use the new interface. Chris Armstrong did some UI improvements
3543 * Checked in win32 Process support, and fixed win32 event loop.
3545 2002-03-11 Glyph Lefkowitz <glyph@janus.twistedmatrix.com>
3547 * More robust shutdown sequence for default mainloop (other
3548 mainloops should follow suit, but they didn't implement shutdown
3549 callbacks properly before anyway...). This allows for shutdown
3550 callbacks to continue using the main loop.
3552 2002-03-09 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3554 * Automatic log rotation for twistd. In addition, sending SIGUSR1
3555 to twistd will rotate the log.
3557 2002-03-07 Chris Armstrong <carmstro@twistedmatrix.com>
3559 * .: Releasing Twisted 0.15.5.
3561 2002-03-06 Glyph Lefkowitz <glyph@zelda.twistedmatrix.com>
3563 * twisted/web/html.py: Got rid of html.Interface. This was a really
3564 old, really deprecated API.
3566 2002-03-06 Chris Armstrong <carmstro@twistedmatrix.com>
3568 * twisted/web/widgets.py: Deprecated usage of Gadget.addFile(path)
3569 and replaced it with Gadget.putPath(path, pathname). This is
3570 a lot more flexible.
3572 2002-03-05 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3574 * twisted/internet/win32.py: New win32 event loop, written by
3577 * twisted/tap/*: Changed the interface for creating tap modules - use
3578 a method called updateApplication instead of getPorts. this
3579 is a much more generic and useful mechanism.
3581 * twisted/internet/task.py: Fixed a bug where the schedular wasn't
3582 installed in some cases.
3584 2002-03-04 Moshe Zadka <moshez@twistedmatrix.com>
3586 * twisted/web/server.py: authorizer.Unauthorized->util.Unauthorized
3587 (leftovers from removing .passport references.)
3589 * twisted/names/dns.py: Added support for TTL.
3591 2002-03-02 Chris Armstrong <carmstro@twistedmatrix.com>
3593 * .: Releasing Twisted 0.15.4.
3595 2002-03-02 Paul Swartz <z3p@twistedmatrix.com>
3597 * twisted/words/ircservice.py: Send End-Of-MOTD message --
3598 some clients rely on this for automatic joining of channels
3601 2002-03-02 Moshe Zadka <moshez@twistedmatrix.com>
3603 * twisted/names/dns.py: Fixed bugs in DNS client
3605 2002-03-01 Moshe Zadka <moshez@twistedmatrix.com>
3607 * twisted/protocols/dns.py: Can now correctly serialize answers
3609 * twisted/names/dns.py: Can now do simple serving of domains
3611 * twisted/internet/stupid.py: Removed spurious debugging print
3613 2002-02-28 Chris Armstrong <carmstro@twistedmatrix.com>
3615 * .: Releasing 0.15.3.
3617 2002-02-27 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3619 * twisted/mail/*, twisted/plugins.tml: The Mail server is now
3622 * bin/twistd: security fix: use a secure umask (077, rather than 0)
3625 2002-02-26 Allen Short <washort@twistedmatrix.com>
3627 * twisted/eco/eco.py, twisted/eco/sexpy.py: ECO now supports
3628 backquoting and macros.
3630 2002-02-26 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3632 * twisted/protocols/ftp.py, twisted/plugins.tml: Made the FTP
3635 2002-02-26 Benjamin Bruheim <phed@twistedmatrix.com>
3637 * twisted/web/distrib.py: Fixed a win32-compatibility bug.
3639 2002-02-24 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3641 * twisted/protocols/socks.py: Made SOCKSv4 coilable, and fixed a
3642 bug so it'd work with Mozilla.
3644 2002-02-24 Chris Armstrong <carmstro@twistedmatrix.com>
3646 * .: Releasing Twisted 0.15.2.
3648 2002-02-24 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3650 * setup.py: Added plugins.tml and instancemessenger.glade installs
3651 so mktap and t-im work in a 'setup.py install' install.
3653 * debian/rules: Install plugins.tml so mktap works in debian installs.
3655 * doc/man/mktap.1, twistd.1: Updated the man pages to be more accurate.
3657 2002-02-24 Chris Armstrong <carmstro@twistedmatrix.com>
3659 * bin/mktap: Better error reporting when we don't find
3662 * bin/twistd: Print out the *real* usage description rather than
3663 barfing when we get bad command line arguments.
3665 2002-02-24 Moshe Zadka <moshez@twistedmatrix.com>
3667 * debian/rules: Install the instancemessenger.glade file, so IM
3668 will work in debian installs.
3670 2002-02-24 Paul Swartz <z3p@twistedmatrix.com>
3672 * twisted/protocols/oscar.py, socks.py, toc.py: Fixed a security
3673 hole in TOC where clients could call any method on the server.
3675 2002-02-23 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3677 * twisted/tap/coil.py: There is now a tap-creator for COIL.
3679 * twisted/internet/stupidproxy.py: Now with COILability!
3681 2002-02-23 Glyph Lefkowitz <glyph@zelda.twistedmatrix.com>
3683 * bin/mktap: mktap now uses Plugins instead of searching through
3684 twisted.tap. Yay for unified configuration systems!
3687 2002-02-22 Chris Armstrong <carmstro@twistedmatrix.com>
3689 * twisted/im, twisted/words: t-im can now do topic setting (words
3690 only), fixed the Group Metadata-setting interface in the service.
3692 2002-02-22 Glyph Lefkowitz <glyph@zelda.twistedmatrix.com>
3694 * twisted/manhole: COIL can now load Plugins.
3696 2002-02-21 Glyph Lefkowitz <glyph@zelda.twistedmatrix.com>
3698 * twisted.spread.pb: Changed remote method invocations to be
3699 called through .callRemote rather than implicitly by getattr, and
3700 added LocalAsRemote utility class for emulating remote behavior.
3702 2002-02-21 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3704 * twisted.protocols.ftp: Fixed a lot of serious bugs.
3706 2002-02-20 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3708 * twisted.protocols.telnet: the python shell now supports
3709 multi-line commands and can be configured using coil.
3711 2002-02-13 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3713 * twisted.lumberjack: a log rotation and viewing service.
3714 Currently only log rotation is supported.
3716 2002-02-12 Kevin Turner <acapnotic@twistedmatrix.com>
3718 * twisted/words/ircservice.py (IRCChatter.irc_AWAY): Fix bug
3719 where you can never come back from being away (at least using
3722 2002-02-11 Chris Armstrong <carmstro@twistedmatrix.com>
3724 * twisted/web/widgets.py: Changed Gadget.page to Gadget.pageFactory
3725 for clarity (this is backwards-compatible).
3727 2002-02-10 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3729 * twisted/spread/jelly.py:
3730 * twisted/spread/banana.py:
3731 * twisted/spread/pb.py: fixed bugs found by pychecker, got rid
3732 of __ping__ method support, and added 'local_' methods to
3735 * twisted/persisted/styles.py: pychecker bug fixes
3737 2002-02-09 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3739 * bin/eco: Created a command-line interpreter for ECO.
3741 * doc/man/eco.1: man page for bin/eco
3743 2002-02-09 Chris Armstrong <carmstro@twistedmatrix.com>
3745 * twisted/eco/eco.py: Reverted evaluator state back to functional-ness
3746 :) And added functions (anonymous and global), and broke various
3749 2002-02-09 Allen Short <washort@twistedmatrix.com>
3751 * twisted/eco/eco.py: Refactored evaluator into a class, improved
3752 python-function argument signatures, and added and/or/not functions.
3754 2002-02-08 Kevin Turner <acapnotic@twistedmatrix.com>
3756 * twisted/words/service.py, ircservice.py: Fixed annoying PING
3757 bug, and added /topic support.
3759 2002-02-08 Glyph Lefkowitz <glyph@twistedmatrix.com>
3761 * twisted/eco: Initial prototype of ECO, the Elegant C Overlay
3764 2002-02-02 Paul Swartz <z3p@twistedmatrix.com>
3766 * twisted/im/ircsupport.py: Added support for the IRC protocol
3769 2002-02-02 Chris Armstrong <carmstro@twistedmatrix.com>
3771 * twisted/python/deferred.py: added Deferred.addErrback, so now
3772 it's easy to attach errbacks to deferreds when you don't care
3773 about plain results.
3775 * twisted/im/chat.py, twisted/im/pbsupport.py: added support for
3778 2002-02-02 Paul Swartz <z3p@twistedmatrix.com>
3780 * SOCKSv4 support: there is now a protocols.socks, which contains
3781 support for SOCKSv4, a TCP proxying protocol. mktap also has
3782 support for the new protocol.
3784 2002-02-02 Kevin Turner <acapnotic@twistedmatrix.com>
3786 * twisted/words/ircservice.py (IRCChatter.receiveDirectMessage),
3787 (IRCChatter.receiveGroupMessage),
3788 (IRCChatter.irc_PRIVMSG): Added CTCP ACTION <-> emote translation
3790 2002-02-01 Paul Swartz <z3p@twistedmatrix.com>
3792 * twisted/im/tocsupport.py: Added support for most of the TOC
3796 2002-02-01 Chris Armstrong <carmstro@twistedmatrix.com>
3798 * twisted/im/*.py: added metadata/emote support to IM. "/me foo"
3799 now triggers a backwards-compatible emote.
3802 2002-01-30 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3804 * twisted/internet/tcp.py: Fixed the bug where startFactory() would
3807 2002-01-30 Chris Armstrong <carmstro@twistedmatrix.com>
3809 * twisted/im: a new client for twisted.words (and eventually
3810 much more) based on GTK+ and Glade. This is mainly glyph's
3811 code, but I organized it for him to check in.
3813 * twisted/words/service.py: metadata support for words messages
3814 (only {'style': 'emote'} is standardized as of yet)
3816 2002-01-29 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3818 * Added hook to tcp.Port and ssl.Port for limiting acceptable
3819 connections - approveConnection(socket, addr).
3821 2002-01-27 Chris Armstrong <carmstro@twistedmatrix.com>
3823 * twisted/words/ircservice.py: You can now change the topic
3824 of a channel with '/msg channelName topic <topic>' - note that
3825 'channelName' does *not* include the '#'.
3827 2002-01-23 Glyph Lefkowitz <glyph@zelda.twistedmatrix.com>
3829 * Incompatible change to PB: all remote methods now return
3830 Deferreds. This doesn't break code in as many places as possible,
3831 but the connection methods now work differently and have different
3834 * Incompatible change to Banana: Banana now really supports floats
3835 and long integers. This involved removing some nasty hackery that
3836 was previously part of the protocol spec, so you'll need to
3839 * Added a feature to Jelly: Jelly now supports unicode strings.
3841 * Improved Twisted.Forums considerably: still needs work, but it's
3842 growing into an example of what you can do with a Twisted.Web
3845 * Added Twisted.Web.Webpassport -- generic mechanism for web-based
3846 login to arbitrary services. This in conjunction with some code
3847 in Forum that uses it.
3849 * Incompatible change in Enterprise: all query methods now return
3850 Deferreds, as well as take arguments in an order which makes it
3851 possible to pass arbitrary argument lists for using the database's
3852 formatting characters rather than python's.
3854 2002-01-15 Glyph Lefkowitz <glyph@zelda.twistedmatrix.com>
3856 * twisted/internet/passport.py: (and friends) Retrieval of
3857 perspectives is now asynchronous, hooray (this took way too long)!
3858 Perspectives may now be stored in external data sources. Lurching
3859 slowly towards a stable API for the Passport system, along with
3860 Sean's recent commits of tools to manipulate it.
3862 2002-01-14 Kevin Turner <acapnotic@twistedmatrix.com>
3864 * twisted/python/explorer.py: reimplementated. So it's better.
3865 And yes, I broke the API.
3867 * twisted/manhole/ui/spelunk_gnome.py: Less duplication of visages,
3868 and they're draggable now too.
3870 2002-01-13 Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3872 * Changed twisted.enterprise.adabi so operations can accept lists
3873 of arguments. This allows us to use the database adaptor's native
3874 SQL quoting ability instead of either doing it ourselves, or the
3875 *current* way twisted does it (not doing it at all, AFAICT!).
3877 cursor.execute("INSERT INTO foo VALUES (%s, %d), "it's magic", 12)
3879 Problem is that different adaptors may have different codes for
3882 * First go at database for twisted.bugs. I hate RDBMS. I hate web.
3884 --- 0.13.0 Release ---
3887 # add-log-time-format: add-log-iso8601-time-string