~certify-web-dev/twisted/certify-trunk

1.1.3 by Matthias Klose
Import upstream version 2.1.0
1
2005-03-12  Jp Calderone  <exarkun@twistedmatrix.com>
2
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.
9
10
2005-02-10  Jp Calderone  <exarkun@twistedmatrix.com>
11
12
	* twisted/internet/defer.py: DeferredLock, DeferredSemaphore, and
13
	DeferredQueue added.
14
15
	* twisted/test/test_defer.py: Tests for above mentioned three new
16
	classes.
17
18
2004-11-27  Brian Warner  <warner@lothar.com>
19
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.
23
24
2004-11-07  Brian Warner  <warner@lothar.com>
25
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.
30
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)
34
35
2004-11-06  Jp Calderone  <exarkun@twistedmatrix.com>
36
37
	* twisted/trial/assertions.py: assertRaises/failUnlessRaises now 
38
	returns the caught exception to allow tests to inspect the contents.
39
40
2004-11-02  Brian Warner  <warner@lothar.com>
41
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.
45
46
2004-10-26  Cory Dodt <corydodt@twistedmatrix.com>
47
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 
52
	  issue 760.
53
54
2004-10-24  Itamar Shtull-Trauring  <itamar@itamarst.org>
55
56
	* TCP: Half-close of write and read for TCP connections, including
57
	protocol notification for protocols that implement
58
	IHalfCloseableProtocol.
59
60
2004-10-07  Jp Calderone  <exarkun@twistedmatrix.com>
61
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
65
	can accommodate.
66
67
2004-10-06  Itamar Shtull-Trauring  <itamar@itamarst.org>
68
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.
72
73
2004-09-30  Brian Warner  <warner@lothar.com>
74
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
77
	apps.
78
79
	* gtk2reactor.py: import gobject *after* pygtk.require, to make
80
	sure we get the same versions of both
81
82
2004-09-18  Christopher Armstrong  <radix@twistedmatrix.com>
83
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.
88
89
2004-09-11  Cory Dodt  <corydodt@twistedmatrix.com>
90
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
96
97
2004-08-24  Brian Warner  <warner@lothar.com>
98
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 
105
106
2004-07-18  Paul Swartz <z3p@twistedmatrix.com>
107
108
	* twisted/internet/utils.py: By passing errortoo=1, you can get 
109
	stderr from getProcessOutput
110
111
2004-07-18  Paul Swartz <z3p@twistedmatrix.com>
112
113
	* twisted/conch/unix.py: if the utmp module is available, record
114
	user logins/logouts into utmp/wtmp.
115
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.
119
120
2004-06-25  Jp Calderone  <exarkun@twistedmatrix.com>
121
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.
125
126
2004-06-12  Paul Swartz  <z3p@twistedmatrix.com>
127
128
	* twisted/conch/client: added -r flag to reconnect to the server if
129
	the connection is lost (closes 623).
130
131
2004-06-06  Dave Peticolas  <dave@krondo.com>
132
133
	* twisted/test/test_enterprise.py: test open callback and
134
	connect/disconnect.
135
136
	* twisted/enterprise/adbapi.py: add open callback support
137
	and disconnect() method. Issue 480.
138
139
2004-06-05  Dave Peticolas  <dave@krondo.com>
140
141
	* twisted/enterprise/adbapi.py: Don't log sql exceptions (issue 631).
142
	Remove deprecated api.
143
144
	* twisted/news/database.py: do not use adbapi.Augmentation
145
146
2004-06-03  Itamar Shtull-Trauring  <itamar@itamarst.org>
147
148
	* twisted/internet/gtk2reactor.py: The choice between glib event
149
	loop and gtk+ event loop is determined by argument at reactor
150
	install time.
151
152
2004-05-31  Dave Peticolas  <dave@krondo.com>
153
154
	* twisted/enterprise/sqlreflector.py: don't use Augmentation
155
156
	* twisted/enterprise/populate.sql: remove
157
158
	* twisted/enterprise/schema.sql: remove
159
160
	* twisted/enterprise/row.py: remove deprecated classes
161
162
	* twisted/enterprise/dbgadgets.py: remove
163
164
	* twisted/enterprise/dbcred.py: remove
165
166
	* twisted/test/test_enterprise.py: Fix Firebird test case.
167
168
2004-05-21  Itamar Shtull-Trauring  <itamar@itamarst.org>
169
170
	* twisted/internet/gtk2reactor.py: use glib event loop directly
171
	instead of gtk2's event loop if possible.
172
173
2004-05-04  Jp Calderone  <exarkun@twistedmatrix.com>
174
175
	* twisted.news, twisted.protocols.nntp: Moved back into trunk
176
	pending an alternate split-up strategy.
177
178
2004-05-04  Itamar Shtull-Trauring  <itamar@itamarst.org>
179
180
	* twisted.internet.reactor.listenUDP: transport.write() on UDP
181
	ports no longer supports unresolved hostnames (though deprecated
182
	support still exists).
183
184
2004-4-18  Christopher Armstrong  <radix@twistedmatrix.com>
185
186
	* twisted/lore/nevowlore.py, twisted/plugins.tml: Added Nevow
187
	support for lore. See docstring of twisted.lore.nevowlore.
188
	
189
2004-4-18  Christopher Armstrong  <radix@twistedmatrix.com>
190
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.
194
195
2004-4-11  Paul Swartz <z3p@twistedmatrix.com>
196
197
	* twisted.conch: refactored the Conch client to separate connecting
198
	to a server from user authentication from client-specific actions.
199
200
2004-03-23  Andrew Bennetts <spiv@twistedmatrix.com>
201
202
	* twisted.protocols.http: Small optimisation to HTTP implementation.
203
	This changes return value of toChunk to a tuple of strings, rather
204
	than one string.
205
206
2004-4-3  Paul Swartz <z3p@twistedmatrix.com>
207
208
	* twisted.python.lockfile: added lockfile support, based on
209
	liblockfile.
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.
214
215
2004-03-23  Pavel Pergamenshchik  <pp64@cornell.edu>
216
217
	* twisted.internet.iocp: Support for Windows IO Completion Ports.
218
	Use with "--reactor=iocp" parameter to twistd or trial.
219
220
2004-03-20  Itamar Shtull-Trauring  <itamar@itamarst.org>
221
222
	* twisted.internet: getHost(), getPeer(), buildProtocol() etc.
223
	all use address objects from twisted.internet.address.
224
225
	* twisted/internet/udp.py: Connected UDP support is now part of
226
	the standard listenUDP-resulting UDP transport using a connect()
227
	method.
228
229
2004-03-18  Jp Calderone  <exarkun@twistedmatrix.com>
230
231
	* twisted/application/internet.py: Changed TimerService to
232
	log errors from the function it calls.
233
234
	* twisted/application/test_application.py: Added test case
235
	for logging of exceptions from functions TimerService calls.
236
237
2004-03-07  Christopher Armstrong  <radix@twistedmatrix.com>
238
239
	* .: Releasing Twisted 1.2.1alpha1.
240
241
2004-03-03  Christopher Armstrong  <radix@twistedmatrix.com>
242
243
	* twisted/web/server.py: Fix UnsupportedMethod so that users'
244
	allowedMethods are actually honored.
245
246
	* twisted/web/resource.py: (Resource.render) If the resource has
247
	an 'allowedMethods' attribute, pass it to UnsupportedMethod.
248
249
2004-02-27  Andrew Bennetts  <spiv@twistedmatrix.com>
250
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.
254
255
2004-02-28  Dave Peticolas <dave@krondo.com>
256
257
	* setup.py: install tap2rpm as a bin script
258
259
	* twisted/test/test_enterprise.py: Test Firebird db. Fix typos.
260
261
2004-02-27  Andrew Bennetts  <spiv@twistedmatrix.com>
262
263
	* twisted/internet/defer.py: Deprecated DeferredList.addDeferred.  It
264
	isn't as useful as it looks, and can have surprising behaviour.
265
266
2004-02-25  Christopher Armstrong  <radix@twistedmatrix.com>
267
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).
272
273
	* twisted/names/client.py: Fixed the AXFR client (lookupZone),
274
	thanks to DJB's wonderful documentation of the horribleness of
275
	DNS.
276
277
2004-02-25  Christopher Armstrong  <radix@twistedmatrix.com>
278
279
	* .: Releasing Twisted 1.2.0 final! Same as rc3.
280
281
2004-02-24  Christopher Armstrong  <radix@twistedmatrix.com>
282
283
	* .: Releasing Twisted 1.2.0rc3 (same as rc2, with cBanana bug
284
	fixed).
285
286
2004-02-19  Kevin Turner  <acapnotic@twistedmatrix.com>
287
288
	* twisted/application/service.py (IService.disownServiceParent)
289
	(IServiceCollection.removeService): These may return Deferred if they
290
	have asynchronous side effects.
291
292
2004-02-18  Christopher Armstrong  <radix@twistedmatrix.com>
293
294
	* .: Releasing Twisted 1.2.0rc2. Brown-paper bag release bug.
295
296
2004-02-17  Christopher Armstrong  <radix@twistedmatrix.com>
297
298
	* .: Releasing Twisted 1.2.0rc1.
299
300
2004-02-13  Brian Warner  <warner@lothar.com>
301
302
	* doc/howto/faq.xhtml: add entry on transport.getPeer()
303
304
2004-01-31  Christopher Armstrong  <radix@twistedmatrix.com>
305
306
	* .: Releasing Twisted 1.1.2alpha2 (problem with Debian packaging).
307
308
2004-01-30  Christopher Armstrong  <radix@twistedmatrix.com>
309
310
	* .: Releasing Twisted 1.1.2alpha1.
311
312
2004-01-23  Christopher Armstrong  <radix@twistedmatrix.com>
313
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
317
	'trace' module.
318
319
2004-01-21  Pavel Pergamenshchik  <pp64@cornell.edu>
320
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.
327
328
2004-01-18  Christopher Armstrong  <radix@twistedmatrix.com>
329
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.
337
338
2004-01-13  Itamar Shtull-Trauring  <itamar@itamarst.org>
339
340
	* twisted/web/soap.py: Beginning of client SOAP support.
341
342
2004-01-10  Andrew Bennetts <spiv@twistedmatrix.com>
343
344
	* twisted/protocols/ftp.py: Added support for partial downloads
345
	and uploads to FTPClient (see the offset parameter of retrieveFile).
346
347
2004-01-09  Jp Calderone  <exarkun@twistedmatrix.com>
348
349
	* twisted/protocols/imap4.py: Add IMessageCopier interface to allow
350
	for optimized implementations of message copying.
351
352
2004-01-06  Brian Warner  <warner@lothar.com>
353
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).
359
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).
363
364
	* twisted/internet/protocol.py (ProcessProtocol): add new
365
	childDataReceived and childConnectionLost methods, which default
366
	to invoking the old methods for backwards compatibility
367
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
373
374
	* doc/howto/process.xhtml: document childFDs argument, add example
375
376
2004-01-04  Itamar Shtull-Trauring  <itamar@itamarst.org>
377
378
	* twisted/internet/gladereactor.py: logs all network traffic for
379
	TCP/SSL/Unix sockets, allowing traffic to be displayed.
380
381
2004-01-04  Dave Peticolas  <dave@krondo.com>
382
383
	* twisted/test/test_enterprise.py: test deleting rows not in cache
384
385
	* twisted/enterprise/reflector.py: deleted rows don't have to be
386
	in cache
387
388
	* doc/examples/row_example.py: use KeyFactory from row_util
389
390
	* doc/examples/row_util.py: add KeyFactory
391
392
2003-12-31  Brian Warner  <warner@lothar.com>
393
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
400
401
2003-12-31  Jp Calderone  <exarkun@twistedmatrix.com>
402
403
	* twisted/protocols/ident.py: Client and server ident implementation
404
	* twisted/test/test_ident.py: Test cases for ident protocol
405
406
2003-12-29  Jp Calderone  <exarkun@twistedmatrix.com>
407
408
	* twisted/spread/pb.py: Changed PBServerFactory to use "protocol"
409
	instance attribute for Broker creation.
410
411
2003-12-26  Itamar Shtull-Trauring  <itamar@itamarst.org>
412
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
416
	this attribute.
417
418
2003-12-23  Itamar Shtull-Trauring  <itamar@itamarst.org>
419
420
	* twisted/web/client.py: if Host header is passed, use that
421
	instead of extracting from request URL.
422
423
2003-12-14  Dave Peticolas  <dave@krondo.com>
424
425
	* twisted/test/test_enterprise.py: Frederico Di Gregorio's patch
426
	adding a psycopg test case.
427
428
2003-12-09  Christopher Armstrong  <radix@twistedmatrix.com>
429
430
	* .: Releasing Twisted 1.1.1, based on rc4.
431
432
2003-12-06  Itamar Shtull-Trauring  <itamar@itamarst.org>
433
434
	* twisted/internet/wxreactor.py: Added experimental wxPython reactor,
435
	which seems to work better than the twisted.internet.wxsupport.
436
437
2003-12-05  Paul Swartz  <z3p@twistedmatrix.com>
438
439
	* twisted/conch/ssh/filetransfer.py, session.py: added SFTPv3 support
440
	to the Conch server.
441
442
2003-12-04  Christopher Armstrong  <radix@twistedmatrix.com>
443
444
	* .: Releasing Twisted 1.1.1rc4, based on rc2. rc3 never happened!
445
446
2003-12-04  Brian Warner  <warner@lothar.com>
447
448
	* twisted/persisted/sob.py (Persistent): fix misspelled class name,
449
	add compatibility binding to "Persistant" (sic).
450
451
	* twisted/test/test_sob.py: use Persistent
452
	* twisted/application/service.py (Application): use Persistent
453
454
2003-12-03  Jp Calderone  <exarkun@twistedmatrix.com>
455
456
	* twisted/protocols/imap4.py: Added support for the
457
	IDLE command (RFC 2177).
458
459
2003-12-03  Jp Calderone  <exarkun@twistedmatrix.com>
460
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.
464
465
2003-12-02  Jp Calderone  <exarkun@twistedmatrix.com>
466
467
	* .: Releasing Twisted 1.1.1rc3.
468
469
2003-12-01  Christopher Armstrong  <radix@twistedmatrix.com>
470
471
	* .: Releasing Twisted 1.1.1rc2 (from CVS HEAD).
472
473
2003-12-01  Jp Calderone  <exarkun@twistedmatrix.com>
474
475
	* twisted/python/runtime.py: Added seconds method to Platform
476
	class.
477
478
	* twisted/internet/base.py, twisted/internet/task.py: Changed
479
	use of time.time() to use Platform.seconds() instead.
480
481
2003-11-24  Jp Calderone  <exarkun@twistedmatrix.com>
482
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.
487
488
2003-11-24  Jp Calderone  <exarkun@twistedmatrix.com>
489
490
	* twisted/protocols/imap4.py: Fix incorrect behavior of closing the
491
	mailbox in response to an EXPUNGE command.
492
493
2003-11-21  Jp Calderone  <exarkun@twistedmatrix.com>
494
495
	* twisted/trial/runner.py: Added missing calls to setUpClass and
496
	tearDownClass in SingletonRunner.
497
498
2003-11-21  Christopher Armstrong  <radix@twistedmatrix.com>
499
500
	* .: Releasing Twisted 1.1.1rc1.
501
502
2003-11-20  Jp Calderone  <exarkun@twistedmatrix.com>
503
504
	* twisted/protocols/imap4.py: Fixed incorrect generation of
505
	INTERNALDATE information.
506
507
2003-11-20  Jp Calderone  <exarkun@twistedmatrix.com>
508
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.
512
513
2003-11-20  Jp Calderone  <exarkun@twistedmatrix.com>
514
515
	* twisted/internet/tasks.py: LoopingCall added.
516
517
2003-10-14  Itamar Shtull-Trauring  <itamar@itamarst.org>
518
519
	* twisted/internet/tasks.py: Deprecated scheduling API removed.
520
521
2003-11-18  Jonathan Simms  <jonathan@embassynetworks.com>
522
523
	* twisted/protocols/ftp.py: refactored to add cred support,
524
	pipelining, security.
525
	* twisted/test/test_ftp.py: tests for the new ftp
526
527
2003-11-18  Sam Jordan  <sam@twistedmatrix.com>
528
529
	* twisted/protocols/msn.py: support for MSNP8
530
	* doc/examples/msn_example.py: small msn example
531
532
2003-11-13  Paul Swartz  <z3p@twistedmatrix.com>
533
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
539
	ClientCreator
540
	* twisted/scripts/conch.py: use the key agent if available, also
541
	agent forwarding
542
543
2003-11-07  Brian Warner  <warner@lothar.com>
544
545
	* twisted/application/app.py (getApplication): provide a more
546
	constructive error message when a .tac file doesn't define
547
	'application'. Closes issue387.
548
549
2003-11-01  Paul Swartz  <z3p@twistedmatrix.com>
550
551
	* twisted/conch/ssh/common.py: use GMPy for faster math if it's
552
	available
553
554
2003-10-24  Christopher Armstrong  <radix@twistedmatrix.com>
555
556
	* .: Releasing Twisted 1.1.0 final. Same codebase as rc2.
557
558
2003-10-24  Brian Warner  <warner@lothar.com>
559
560
	* doc/howto/test-standard.xhtml: Add section on how to clean up.
561
562
	* twisted/test/test_conch.py: improve post-test cleanup. Addresses
563
	problems seen in issue343.
564
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
568
	issue347.
569
	(ReactorBase.addSystemEventTrigger)
570
	(ReactorBase.callWhenRunning)
571
	(ReactorBase.callInThread): same
572
	* doc/howto/coding-standard.xhtml (Callback Arguments): explain why
573
574
2003-10-22  Christopher Armstrong  <radix@twistedmatrix.com>
575
576
	* .: Releasing Twisted 1.1.0rc2.
577
578
2003-10-21  Andrew Bennetts  <spiv@twistedmatrix.com>
579
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
584
	updating.
585
586
2003-10-16  Christopher Armstrong  <radix@twistedmatrix.com>
587
588
	* .: Releasing Twisted 1.1.0alpha3.
589
590
2003-10-16  Brian Warner  <warner@lothar.com>
591
592
	* doc/howto/pb-cred.xhtml: update for newcred. Closes issue172.
593
594
2003-10-15  Brian Warner  <warner@lothar.com>
595
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().
601
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.
607
608
2003-10-15  Christopher Armstrong  <radix@twistedmatrix.com>
609
610
	* .: Releasing Twisted 1.1.0alpha2 (alpha1 was dead in the water).
611
612
2003-10-15  Brian Warner  <warner@lothar.com>
613
614
	* setup.py: remove cReactor/ to the sandbox. Closes issue318.
615
616
2003-10-14  Itamar Shtull-Trauring  <itamar@itamarst.org>
617
618
	* twisted/web/static.py: registry no longer has support for
619
	getting services based on their interfaces.
620
621
2003-10-14  Christopher Armstrong  <radix@twistedmatrix.com>
622
623
	* .: Releasing Twisted 1.1.0alpha1.
624
625
2003-10-13  Bob Ippolito  <bob@redivi.com>
626
627
	* doc/howto/choosing-reactor.xhtml:
628
	Added cfreactor/Cocoa information.
629
630
	* doc/examples/cocoaDemo:
631
	Removed, replaced by doc/examples/Cocoa cfreactor demos.
632
633
	* doc/examples/Cocoa:
634
	Moved from sandbox/etrepum/examples/PyObjC, cleaned up.
635
636
	* twisted/internet/cfsupport, twisted/internet/cfreactor.py:
637
	Moved from sandbox/etrepum, cleaned up.
638
639
	* twisted/application/app.py:
640
	Added 'cf' -> twisted.internet.cfreactor to reactorTypes
641
642
	* setup.py:
643
	sys.platform=='darwin' - build cfsupport, do not build cReactor.
644
645
	* INSTALL:
646
    Changed URL of pimp repository to shorter version.
647
648
2003-10-12  Jp Calderone  <exarkun@twistedmatrix.com>
649
650
	* bin/tktwistd, twisted/scripts/tktwistd.py, doc/man/tktwistd.1:
651
	Removed.
652
653
2003-10-12  Itamar Shtull-Trauring  <itamar@itamarst.org>
654
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.
658
659
2003-10-02  Jp Calderone  <exarkun@twistedmatrix.com>
660
661
	* setup.py, twisted/test/test_dir.py, twisted/python/_c_dir.c:
662
	Removed _c_dir extension module for portability and maintenance
663
	reasons.
664
665
2003-10-03  Moshe Zadka <moshez@twistedmatrix.com>
666
667
	* twisted/spread/util.py twisted/test/test_spread.py: Fix issue
668
	286
669
670
2003-10-01  Brian Warner  <warner@lothar.com>
671
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".
677
	Closes issue234.
678
	* twisted/test/test_webclient.py (WebClientTestCase.write): verify
679
	that the errback gets called
680
681
	* twisted/scripts/trial.py (run): add --until-failure option to
682
	re-run the test until something fails. Closes issue87.
683
684
2003-09-30  Brian Warner  <warner@lothar.com>
685
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.
689
690
2003-9-29  Moshe Zadka <moshez@twistedmatrix.com>
691
692
	* twisted/tap/procmon.py twisted/plugins.tml: remove procmon
693
	tap. It was crufty and hard to port properly to new application.
694
695
2003-09-29  Brian Warner  <warner@lothar.com>
696
697
	* twisted/scripts/trial.py (Options.opt_reactor): make trial
698
	accept the same reactor-name abbreviations as twistd does. Closes
699
	issue69.
700
	(top): add test-case-name tag
701
702
	* doc/man/trial.1: document the change
703
704
2003-09-28  Christopher Armstrong  <radix@twistedmatrix.com>
705
706
	* .: Releasing Twisted 1.0.8alpha3.
707
708
2003-09-27  Cory Dodt <corydodt@yahoo.com>
709
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.
712
713
2003-9-18  Moshe Zadka <moshez@twistedmatrix.com>
714
715
	* twisted/application/strports.py twisted/test/test_strports.py:
716
	New API/mini-language for defining ports
717
718
2003-9-18  Moshe Zadka <moshez@twistedmatrix.com>
719
720
	* twisted/web/spider.py: removed, it was unmaintained.
721
722
2003-09-19  Christopher Armstrong  <radix@twistedmatrix.com>
723
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.
729
730
2003-09-19  Moshe Zadka <moshez@twistedmatrix.com>
731
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
737
	applications.
738
739
2003-09-19  Jp Calderone  <exarkun@twistedmatrix.com>
740
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
745
	resolver.
746
747
	* twisted/mail/relaymanager.py: Instantiation of MXCalculator made
748
	lazy.
749
750
2003-09-18  Stephen Thorne  <stephen@thorne.id.au>
751
752
	* twisted/web/distrib.py: Removed dependancy on twisted.web.widgets, and
753
	instead using woven.
754
755
2003-09-18  Stephen Thorne  <stephen@thorne.id.au>
756
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
760
761
2003-09-18  Stephen Thorne  <stephen@thorne.id.au>
762
763
	* twisted/web/woven/widgets.py: Stop the 'Option' widget from having a
764
    name="" attribute. Closes issue255.
765
766
2003-09-16  Christopher Armstrong  <radix@twistedmatrix.com>
767
768
	* .: Releasing Twisted 1.0.8alpha1.
769
770
	* .: Releasing Twisted 1.0.8alpha2 (Fixed Debian packages).
771
772
2003-09-13  Christopher Armstrong  <radix@twistedmatrix.com>
773
774
	* .: Releasing Twisted 1.0.7 (no code changes since 1.0.7rc1).
775
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.
778
779
2003-09-12  Itamar Shtull-Trauring  <itamar@itamarst.org>
780
781
	* twisted/web/microdom.py: lenient mode correctly handles <script>
782
	tags with CDATA or comments protecting the code (closes issue #231).
783
784
2003-09-10  Tommi Virtanen  <tv@twistedmatrix.com>
785
786
	* HTTPS support for XML-RPC and web clients (closes issue #236).
787
788
2003-08-29  Christopher Armstrong  <radix@twistedmatrix.com>
789
790
	* .: Releasing Twisted 1.0.7rc1.
791
792
2003-09-12  Itamar Shtull-Trauring  <itamar@itamarst.org>
793
794
	* twisted/spread/pb.py: new cred support for Perspective Broker.
795
796
2003-08-26  Dave Peticolas  <dave@krondo.com>
797
798
	* doc/howto/xmlrpc.html: document sub-handler and introspection
799
800
	* twisted/test/test_xmlrpc.py: test introspection support
801
802
	* twisted/web/xmlrpc.py: implement sub-handlers and introspection
803
	support
804
805
2003-08-23  Brian Warner  <warner@lothar.com>
806
807
	* twisted/internet/gtk2reactor.py: force timeout values to be
808
	integers, because recent pygtk's complain when they get floats
809
810
2003-08-19  Christopher Armstrong  <radix@twistedmatrix.com>
811
812
	* .: Releasing Twisted 1.0.7alpha5.
813
814
2003-08-18  Jp Calderone <exarkun@twistedmatrix.com>
815
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.
820
821
2003-08-16  Dave Peticolas  <dave@krondo.com>
822
823
	* twisted/test/test_import.py: update for enterprise
824
825
	* twisted/enterprise/sqlreflector.py: use dbpool directly
826
827
	* twisted/enterprise/row.py: deprecate KeyFactory and StatementBatch
828
829
	* twisted/enterprise/dbpassport.py: remove
830
831
	* twisted/enterprise/dbgadgets.py: deprecate all
832
833
	* twisted/enterprise/dbcred.py: deprecate all
834
835
	* twisted/enterprise/adbapi.py: deprecate Augmentation. deprecate
836
	crufty bits of ConnectionPool API.
837
838
2003-08-11  Dave Peticolas  <dave@krondo.com>
839
840
	* twisted/enterprise/sqlreflector.py: fix docs
841
842
2003-08-08  Donovan Preston  <dp@twistedmatrix.com>
843
844
	* Added getAllPatterns API to Widget, which returns all nodes
845
	which have the given pattern name.
846
847
	* Refactored List widget to use getAllPatterns, so you can have
848
	more than one listHeader, listFooter, and emptyList node.
849
850
2003-08-08  Dave Peticolas  <dave@krondo.com>
851
852
	* twisted/internet/base.py: remove unused internal function.
853
854
	* twisted/internet/gladereactor.py: remove unused internal function.
855
	clean up imports.
856
857
2003-08-07  Christopher Armstrong  <radix@twistedmatrix.com>
858
859
	* .: Releasing Twisted 1.0.7alpha4.
860
861
2003-08-06  Donovan Preston <dp@twistedmatrix.com>
862
863
	* Major woven optimizations.
864
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.
868
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.
873
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
879
	nodes.
880
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.
884
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.
888
889
2003-08-04  Dave Peticolas  <dave@krondo.com>
890
891
	* twisted/python/usage.py: use parameter docs if handler
892
	method has none. fixes bug displaying trial help.
893
894
2003-07-31  Brian Warner  <warner@lothar.com>
895
896
	* twisted/python/filepath.py (FilePath.__getstate__): allow
897
	FilePath objects to survive unpersisting.
898
899
2003-07-30  Brian Warner  <warner@lothar.com>
900
901
	* doc/howto/faq.html: mention spawnProcess vs. os.environ
902
903
	* doc/howto/test-standard.html: document usage of .todo and .skip
904
905
2003-07-28  Brian Warner  <warner@lothar.com>
906
907
	* twisted/python/_c_dir.c: hush compiler warning
908
909
	* setup.py: add twisted.xish
910
911
2003-07-28  Itamar Shtull-Trauring  <itamar@itamarst.org>
912
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().
916
917
2003-07-27  Dave Peticolas  <dave@krondo.com>
918
919
	* twisted/test/test_enterprise.py: enable tests that depend on
920
	cp_min and cp_max
921
922
	* twisted/enterprise/adbapi.py: use threadpool to handle cp_min and
923
	cp_max arguments
924
925
	* twisted/test/test_threadpool.py: test existing work
926
927
	* twisted/python/threadpool.py: check for existing work in start()
928
929
2003-07-25  Jp Calderone  <exarkun@twistedmatrix.com>
930
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.
934
935
2003-07-24  Brian Warner  <warner@lothar.com>
936
937
	* twisted/internet/cReactor/cDelayedCall.c: implement .active and
938
	.getTime methods
939
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.
945
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)
949
950
2003-07-23  Dave Peticolas  <dave@krondo.com>
951
952
	* twisted/internet/threads.py: avoid top-level reactor import
953
954
2003-07-23  Jp Calderone  <exarkun@twistedmatrix.com>
955
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
960
	the interface.
961
962
2003-07-23  Dave Peticolas  <dave@krondo.com>
963
964
	* twisted/test/test_enterprise.py: more tests
965
966
2003-07-21  Dave Peticolas  <dave@krondo.com>
967
968
	* twisted/internet/base.py: implement callWhenRunning
969
970
	* twisted/internet/interfaces.py: add callWhenRunning API
971
972
	* twisted/test/test_pop3.py: string in string only works in 2.3
973
974
2003-07-19  Christopher Armstrong  <radix@twistedmatrix.com>
975
976
	* .: Releasing Twisted 1.0.7alpha3 (for form and twisted.names
977
	updates mentioned below).
978
979
2003-07-19  Ying Li <cyli@ai.mit.edu>
980
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.).
984
985
	* twisted/web/woven/form.py, twisted/python/formmethod.py:  Can
986
	format layout of checkgroups and radiogroups into tables, rows, or
987
	columns.
988
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).
992
993
2003-07-19  Christopher Armstrong  <radix@twistedmatrix.com>
994
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.
998
999
2003-07-17  Christopher Armstrong  <radix@twistedmatrix.com>
1000
1001
	* .: Releasing Twisted 1.0.7alpha2 (Debian packages should be
1002
	correct	now)
1003
1004
2003-07-17  Dave Peticolas  <dave@krondo.com>
1005
1006
	* doc/howto/components.html: methods in interfaces do have self
1007
	parameters
1008
1009
2003-07-18  Christopher Armstrong  <radix@twistedmatrix.com>
1010
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.
1014
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
1018
	them.
1019
1020
2003-07-18  Christopher Armstrong  <radix@twistedmatrix.com>
1021
1022
	* .: Releasing Twisted 1.0.7alpha1.
1023
1024
2003-07-17  Jp Calderone  <exarkun@twistedmatrix.com>
1025
1026
	* twisted/protocols/smtp.py: Address class changed to provide a
1027
	default domain for addresses missing a domain part.
1028
1029
2003-07-16  Christopher Armstrong  <radix@twistedmatrix.com>
1030
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.
1034
1035
2003-07-15  Dave Peticolas  <dave@krondo.com>
1036
1037
	* twisted/persisted/styles.py: better debugging output
1038
	for Ephemeral
1039
1040
2003-07-14  Jp Calderone  <exarkun@twistedmatrix.com>
1041
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.
1046
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.
1051
1052
2003-07-12  Christopher Armstrong  <radix@twistedmatrix.com>
1053
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
1056
	/bar/abc.
1057
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.
1061
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.
1066
1067
2003-07-05  Dave Peticolas  <dave@krondo.com>
1068
1069
	* twisted/test/test_enterprise.py: more tests. Add mysql test.
1070
1071
2003-07-05  Itamar Shtull-Trauring  <itamar@itamarst.org>
1072
1073
	* twisted/web/soap.py: Now requires SOAPpy v0.10.1, allow subclasses
1074
	to determine method publishing strategy.
1075
1076
2004-07-05  Jp Calderone  <exarkun@twistedmatrix.com>
1077
1078
	* bin/mailmail, doc/man/mailmail.1, twisted/scripts/mailmail.py:
1079
	sendmail replacement
1080
1081
2003-07-04  Dave Peticolas  <dave@krondo.com>
1082
1083
	* twisted/test/test_enterprise.py: add sqlite. more tests.
1084
	Add Postgres test.
1085
1086
	* twisted/enterprise/util.py: fix bug in getKeyColumn
1087
1088
	* twisted/enterprise/sqlreflector.py: clean up imports
1089
1090
	* twisted/enterprise/row.py: clean up imports
1091
1092
	* twisted/enterprise/reflector.py: clean up imports
1093
1094
2004-07-04  Jp Calderone  <exarkun@twistedmatrix.com>
1095
1096
	* twisted/python/dir.c: Wrapper around opendir(3), readdir(3),
1097
	and scandir(3) for use by twisted.python.plugins.
1098
1099
2003-07-03  Jp Calderone  <exarkun@twistedmatrix.com>
1100
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.
1105
1106
2003-07-03  Dave Peticolas  <dave@krondo.com>
1107
1108
	* twisted/test/test_enterprise.py: add gadfly test
1109
1110
	* twisted/web/woven/input.py: remove excess newline.
1111
1112
	* twisted/trial/unittest.py: take out unused methodPrefix var
1113
1114
	* twisted/enterprise/adbapi.py: accept 'noisy' kw arg. persist
1115
	noisy, min, and max args. just warn about non-dbapi db libs.
1116
1117
	* twisted/enterprise/reflector.py: fix spelling
1118
1119
	* twisted/enterprise/sqlreflector.py 80 columns, don't addToCache
1120
	in insertRow
1121
1122
	* twisted/enterprise/xmlreflector.py: 80 columns
1123
1124
2003-07-01  Brian Warner  <warner@lothar.com>
1125
1126
	* sandbox/warner/fusd_twisted.py: experimental glue code for FUSD,
1127
	a system for implementing Linux device drivers in userspace
1128
1129
2003-06-27  Christopher Armstrong  <radix@twistedmatrix.com>
1130
1131
	* .: Releasing Twisted 1.0.6rc3. Fixed a security bug in
1132
	twisted.web.
1133
1134
	* .: Releasing Twisted 1.0.6rc4. One more twisted.web bug.
1135
1136
	* .: Releasing Twisted 1.0.6.
1137
1138
2003-06-26  Christopher Armstrong  <radix@twistedmatrix.com>
1139
1140
	* .: Releasing Twisted 1.0.6rc1.
1141
1142
	* .: Releasing Twisted 1.0.6rc2. Pop3 had failing tests.
1143
1144
2003-06-26  Clark C. Evans  <cce@twistedmatrix.com>
1145
1146
	* twisted/flow/*.py: Moved Flow from the sandbox to
1147
	twisted.flow. The callback is dead. Long live the callback!
1148
1149
2003-06-26  Jp Calderone  <exarkun@twistedmatrix.com>
1150
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
1154
	value.
1155
1156
2003-06-24  Brian Warner  <warner@lothar.com>
1157
1158
	* doc/howto/upgrading.html: Explain Versioned and rebuild()
1159
1160
2003-06-23  Christopher Armstrong  <radix@twistedmatrix.com>
1161
1162
	* twisted/scripts/trial.py twisted/trial/reporter.py
1163
	doc/man/trial.1:
1164
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.
1168
1169
2003-06-23  Cory Dodt <corydodt@yahoo.com>
1170
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.
1174
1175
2003-06-22  Jp Calderone  <exarkun@twistedmatrix.com>
1176
1177
	* twisted/internet/defer.py: Changed maybeDeferred API from
1178
	maybeDeferred(deferred, f, *args, **kw) to maybeDeferred(f, *args,
1179
	**kw).
1180
1181
2003-06-19  Paul Swartz  <z3p@twistedmatrix.com>
1182
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.
1186
1187
2003-06-19  Christopher Armstrong  <radix@twistedmatrix.com>
1188
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.
1192
1193
2003-06-18  Christopher Armstrong  <radix@twistedmatrix.com>
1194
1195
	* .: Releasing Twisted 1.0.6alpha2.
1196
1197
2003-06-16  Donovan Preston  <dp@twistedmatrix.com>
1198
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.
1203
1204
2003-06-11  Brian Warner  <warner@lothar.com>
1205
1206
	* doc/howto/cvs-dev.html: add "Working from CVS" hints
1207
1208
2003-06-10  Itamar Shtull-Trauring  <itamar@itamarst.org>
1209
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.
1214
1215
2003-06-09  Christopher Armstrong  <radix@twistedmatrix.com>
1216
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
1220
	a per-class level.
1221
1222
2003-06-09  Jp Calderone  <exarkun@twistedmatrix.com>
1223
1224
	* twisted/mail/relay.py: Default relaying rule change from all
1225
	local and all non-INET connections to all local and all UNIX
1226
	connections.
1227
1228
2003-06-08  Jp Calderone  <exarkun@twistedmatrix.com>
1229
1230
	* twisted/internet/interfaces.py: Added ITLSTransport interface,
1231
	subclassing ITCPTransport and adding one method - startTLS()
1232
1233
	* twisted/internet/tcp.py: Connector class made to implement
1234
	ITLSTransport if TLS is available.
1235
1236
2003-06-05  Brian Warner  <warner@lothar.com>
1237
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.
1242
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
1246
1247
2003-06-03  Jp Calderone    <exarkun@twistedmatrix.com>
1248
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:
1268
1269
	Remove direct usage of twisted.python.compat; Modify __builtin__
1270
	module to include forward-compatibility hacks.
1271
1272
2003-05-30  Brian Warner  <warner@lothar.com>
1273
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.
1280
1281
2003-05-29  Brian Warner  <warner@lothar.com>
1282
1283
	* twisted/python/formmethod.py: this module needs False from compat
1284
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.
1288
1289
2003-05-27  Brian Warner  <warner@lothar.com>
1290
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.
1296
1297
	* twisted/test/test_factories.py (testStopTrying): stop test after
1298
	5 seconds rather than 2000 iterations. Some reactors iterate at
1299
	different rates.
1300
1301
2003-05-24  Brian Warner  <warner@lothar.com>
1302
1303
	* twisted/scripts/trial.py (Options.opt_testmodule): ignore
1304
	deleted files, recognize twisted/test/* files as test cases
1305
1306
2003-05-22  Brian Warner  <warner@lothar.com>
1307
1308
	* twisted/test/test_newjelly.py (JellyTestCase.testUnicode): make
1309
	sure unicode strings don't mutate into plain ones
1310
1311
2003-05-21  Brian Warner  <warner@lothar.com>
1312
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):
1317
	test it
1318
1319
	* doc/howto/test-standard.html: document test-case-name format
1320
1321
	* doc/howto/coding-standard.html: encourage test-case-name tags
1322
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
1326
	test-case-name tags
1327
1328
	* twisted/scripts/trial.py (Options.opt_testmodule): try to handle
1329
	test-case-name tags the same way emacs does
1330
1331
2003-05-21  Christopher Armstrong  <radix@twistedmatrix.com>
1332
1333
	* bin/coil, doc/man/coil.1, doc/man/index.html: removed. Coil
1334
	isn't being maintained, pending a total rewrite.
1335
1336
2003-05-20  Brian Warner  <warner@lothar.com>
1337
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.
1341
1342
2003-05-19  Christopher Armstrong  <radix@twistedmatrix.com>
1343
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.
1349
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.
1356
1357
2003-05-16  Brian Warner  <warner@lothar.com>
1358
1359
	* twisted/scripts/trial.py: catch failures during import of test
1360
	modules named on the command line too.
1361
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.
1365
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
1369
	pass/fail counts.
1370
1371
	* doc/howto/faq.html: Add note about Ephemeral in the
1372
	import-from-self twistd entry.
1373
1374
2003-05-13  Brian Warner  <warner@lothar.com>
1375
1376
	* twisted/trial/runner.py: sort tests by name within a TestCase
1377
1378
2003-05-13  Christopher Armstrong  <radix@twistedmatrix.com>
1379
1380
	* twisted/internet/{default,internet}.py: Add an `active' method to
1381
	DelayedCall, which returns True if it hasn't been called or
1382
	cancelled.
1383
1384
2003-05-13 Jonathan Lange <jml@twistedmatrix.com>
1385
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.
1389
1390
2003-5-12  Moshe Zadka <moshez@twistedmatrix.com>
1391
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".
1400
1401
2003-05-11  Christopher Armstrong  <radix@twistedmatrix.com>
1402
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
1406
	by alpha2.
1407
1408
2003-05-08  Christopher Armstrong  <radix@twistedmatrix.com>
1409
1410
	* .: Releasing Twisted 1.0.5 (same code-base as rc2).
1411
1412
2003-05-08  Glyph Lefkowitz  <glyph@twistedmatrix.com>
1413
1414
	* twisted/world: Added an object database to Twisted.  This is
1415
	still highly experimental!
1416
1417
2003-5-6  Moshe Zadka <moshez@twistedmatrix.com>
1418
1419
	* twisted/trial/reporter.py twisted/scripts/trial.py: Add --timing
1420
	option to make the reporter output wall-clock time.
1421
1422
2003-05-05  Brian Warner  <warner@lothar.com>
1423
1424
	* setup.py (setup_args): s/licence/license/, preferred in python-2.3
1425
1426
2003-05-05  Christopher Armstrong  <radix@twistedmatrix.com>
1427
1428
	* .: Releasing Twisted 1.0.5rc1.
1429
1430
	* .: Releasing Twisted 1.0.5rc2 (only a Debian build problem fixed).
1431
1432
2003-05-05  Brian Warner  <warner@lothar.com>
1433
1434
	* twisted/trial/reporter.py: remove ResultTypes, it doesn't really
1435
	accomplish its goal
1436
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)
1441
1442
2003-05-04  Brian Warner  <warner@lothar.com>
1443
1444
	* twisted/trial/reporter.py (ResultTypes): export legal values for
1445
	Reporter.reportResults() so remote reporters know what to expect
1446
1447
2003-05-03  Jp Calderone  <exarkun@twistedmatrix.com>
1448
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.
1452
1453
2003-05-02  Jp Calderone  <exarkun@twistedmatrix.com>
1454
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.
1458
1459
2003-05-01  Brian Warner  <warner@lothar.com>
1460
1461
	* twisted/test/test_trial.py: handle new trial layout
1462
	* twisted/trial/runner.py (runTest): utility function to help
1463
	test_trial
1464
	* twisted/trial/util.py (extract_tb): handle new trial layout,
1465
	ignore the right framework functions.
1466
1467
2003-05-01  Glyph Lefkowitz  <glyph@twistedmatrix.com>
1468
1469
	* twisted/python/context.py: call-stack context tree.
1470
1471
	* twisted/python/components.py: support interface-to-interface
1472
	adapatation, IFoo(o) syntax for adaptation, context-based
1473
	registries and more.
1474
1475
	* twisted/python/log.py: Totally rewritten logging system.
1476
1477
2003-05-01  Brian Warner  <warner@lothar.com>
1478
1479
	* twisted/internet/gtk2reactor.py (Gtk2Reactor._doReadOrWrite):
1480
	add Anthony's cached-Failure speedup to gtk2 too.
1481
1482
2003-05-01  Itamar Shtull-Trauring  <itamar@itamarst.org>
1483
1484
	* twisted/internet/tcp.py, twisted/internet/default.py: cache
1485
	Failures whose contents are always identical. Speeds up lost
1486
	connections considerably.
1487
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
1491
	required.
1492
1493
2003-04-29  Brian Warner  <warner@lothar.com>
1494
1495
	* twisted/test/test_process.py: make all child processes inherit
1496
	their parent's environment
1497
1498
	* twisted/web/resource.py, twisted/python/roots.py: add
1499
	test-case-name tag
1500
1501
	* twisted/web/resource.py (IResource)
1502
	  twisted/spread/refpath.py (PathReferenceAcquisitionContext.getIndex)
1503
	  twisted/python/roots.py (Collection.getEntity): appease pychecker
1504
1505
2003-04-27  Jp Calderone  <exarkun@twistedmatrix.com>
1506
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
1515
	is not available.
1516
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.
1526
1527
	* doc/howto/coding-standard.html: Document the way to use extension
1528
	versions of modules for which there is a pure-python equivalent.
1529
1530
2003-04-26  Dave Peticolas  <dave@krondo.com>
1531
1532
	* twisted/enterprise/adbapi.py: commit successful _runQuery calls
1533
	instead of rolling back
1534
1535
2003-04-23  Brian Warner  <warner@lothar.com>
1536
1537
	* doc/howto/telnet.html: Update example from twisted-0.15.5(!) to
1538
	1.0.4
1539
1540
	* twisted/protocols/loopback.py: use reactor.iterate(0.01) so the
1541
	tests hammer the CPU slightly less
1542
1543
	* twisted/test/test_trial.py (LoopbackTests.testError): .type is a
1544
	string
1545
	* twisted/trial/remote.py (JellyReporter.reportResults): stringify
1546
	.type and .value from Failures before jellying them.
1547
1548
	* twisted/internet/base.py (ReactorBase.suggestThreadPoolSize):
1549
	don't let suggestThreadPoolSize(0) be the only reason threads are
1550
	initialized.
1551
1552
	* twisted/python/log.py (err): always log Failures to the logfile. If
1553
	we're doing _keepErrors, then also add them to _keptErrors.
1554
1555
	* twisted/trial/unittest.py (TestSuite.runOneTest): only do
1556
	reportResults once per test. Handle reactor.threadpool being None.
1557
1558
2003-04-22  Bob Ippolito <bob@redivi.com>
1559
1560
	* twisted/python/compat.py: Complete iter implementation with
1561
	__getitem__ hack for 2.1.  dict now supports the full 2.3 featureset.
1562
1563
	* twisted/test/test_compat.py: Tests for compat module, so we know if
1564
	it works or not now ;)
1565
1566
2003-04-22  Andrew Bennetts  <spiv@twistedmatrix.com>
1567
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".
1574
1575
2003-04-21  Jp Calderone  <exarkun@twistedmatrix.com>
1576
1577
	* twisted/internet/interfaces.py: Added getServiceNamed, addService,
1578
	and removeService to IServiceCollection.
1579
1580
2003-04-21  Brian Warner  <warner@lothar.com>
1581
1582
	* twisted/web/woven/*.py: add test-case-name tags
1583
1584
2003-04-21  Bob Ippolito <bob@redivi.com>
1585
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).
1590
1591
2003-04-19  Brian Warner  <warner@lothar.com>
1592
1593
	* twisted/trial/remote.py (JellyReporter.cleanResults): handle
1594
	strings as testClass/method to unbreak tests
1595
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.
1600
1601
2003-04-17  Kevin Turner  <acapnotic@twistedmatrix.com>
1602
1603
	* .: Release 1.0.4 Final.
1604
1605
2003-04-16  Kevin Turner  <acapnotic@twistedmatrix.com>
1606
1607
	* .: Release 1.0.4rc1.
1608
1609
2003-04-15  Jp Calderone  <exarkun@twistedmatrix.com>
1610
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.
1614
1615
2003-04-14  Brian Warner  <warner@lothar.com>
1616
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.
1621
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
1625
	connections.
1626
1627
	* twisted/test/test_newjelly.py: add test case that sets .invoker
1628
	to verify that code path too
1629
1630
2003-04-14  Jonathan Lange  <jml@ids.org.au>
1631
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.
1635
1636
2003-04-13  Bob Ippolito  <bob@redivi.com>
1637
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.
1643
1644
2003-04-12  Brian Warner  <warner@lothar.com>
1645
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.
1652
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
1656
1657
	* twisted/test/test_process.py: only install SIGCHLD handler if the
1658
	reactor offers a hook for it.
1659
1660
	* twisted/test/test_policies.py (ThrottlingTestCase.doIterations):
1661
	add more iterations to accomodate reactors that do less IO per pass
1662
1663
	* twisted/test/process_signal.py: reset SIGHUP to default handler,
1664
	fixes test failures in a 'nohup' environment
1665
1666
	* twisted/test/test_process.py (PosixProcessTestCasePTY): remove
1667
	testClosePty.todo now that it works
1668
	(SignalProtocol.processEnded): Improve testSignal error messages
1669
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
1673
	connectionLost.
1674
1675
2003-04-12  Paul Swartz  <z3p@twistedmatrix.com>
1676
1677
	* twisted/plugins.tml, twisted/tap/ssh.py, twisted/tap/conch.py: moved
1678
	the conch server from 'mktap ssh' to 'mktap conch'.
1679
1680
2003-04-12  Brian Warner  <warner@lothar.com>
1681
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.
1688
1689
2003-04-11  Brian Warner  <warner@lothar.com>
1690
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
1695
	expiring).
1696
1697
2003-04-11  Jp Calderone  <exarkun@twistedmatrix.com>
1698
1699
	* twisted/internet/defer.py: Added new, experimental function,
1700
	"maybeDeferred".  API is subject to change.
1701
1702
2003-04-11  Jp Calderone  <exarkun@twistedmatrix.com>
1703
1704
	* twisted/scripts/mktap.py: Sped up --debug and --progress by
1705
	introducing a two-pass option parser.
1706
1707
2003-04-11  Brian Warner  <warner@lothar.com>
1708
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
1714
	using time.sleep().
1715
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
1719
	as reliable.
1720
1721
2003-04-11  Andrew Bennetts  <spiv@twistedmatrix.com>
1722
1723
	* twisted/lore:
1724
	Added a "lore-slides" plugin, with HTML, Magicpoint and Prosper output
1725
	targets.  It's still a bit rough, but functional.
1726
1727
2003-04-10  Kevin Turner  <acapnotic@twistedmatrix.com>
1728
1729
	* .: Release 1.0.4alpha2.
1730
1731
2003-04-09  Brian Warner  <warner@lothar.com>
1732
1733
	* twisted/scripts/trial.py (Options.opt_reactor): install reactor
1734
	before parseArgs() does an import and installs the default one
1735
1736
	* twisted/internet/process.py: fix typo,
1737
	s/registerReapProccessHandler/registerReapProcessHandler)/
1738
1739
2003-04-09  Jp Calderone <exarkun@twistedmatrix.com>
1740
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.
1744
1745
2003-04-09  Brian Warner  <warner@lothar.com>
1746
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().
1752
1753
2003-04-09  Bob Ippolito  <bob@redivi.com>
1754
1755
	* twisted/python/util.py (OrderedDict): added a UserDict subclass
1756
	that preserves insert order (for __repr__, items, values, keys).
1757
1758
	* twisted/internet/app.py (Application, _AbstractServiceCollection):
1759
	Preserve service order, start services in order, stop them in reverse.
1760
1761
2003-04-09  Andrew Bennetts  <spiv@twistedmatrix.com>
1762
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.
1769
1770
2003-04-07  Brian Warner  <warner@lothar.com>
1771
1772
	* twisted/test/test_banana.py (BananaTestCase): add Acapnotic's
1773
	crash-cBanana test case, and some others.
1774
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.
1779
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.
1785
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
1789
1790
2003-04-06  Brian Warner  <warner@lothar.com>
1791
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.
1799
1800
2003-04-04  Kevin Turner  <acapnotic@twistedmatrix.com>
1801
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).
1806
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
1810
	Linux kernel.
1811
1812
	* doc/examples/shaper.py: Demonstration of shaping traffic on a
1813
	web server.
1814
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.
1818
1819
2003-04-04  Itamar Shtull-Trauring  <itamar@itamarst.org>
1820
1821
	* twisted/web/microdom.py: parseXML and parseXMLString functions
1822
	that are setup to use the correct settings for strict XML parsing
1823
	and manipulation.
1824
1825
2003-03-31  Brian Warner  <warner@lothar.com>
1826
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.
1831
1832
2003-03-31  Kevin Turner  <acapnotic@twistedmatrix.com>
1833
1834
	* twisted/trial/remote.py: machine-readable trial output to allow
1835
	for the test runner and the results Reporter to be in seperate
1836
	processes.
1837
1838
2003-03-15  Jp Calderone  <exarkun@twistedmatrix.com>
1839
1840
	* twisted/internet/app.py: Renamed "factory" argument to
1841
	Application.listenUDP() to "proto"
1842
1843
2003-03-13  Tommi Virtanen  <tv@twistedmatrix.com>
1844
1845
	* twisted/tap/procmon.py, twisted/plugins.tml: support for mktapping
1846
	ProcessMonitors.
1847
1848
2003-03-11  Bob Ippolito <bob@redivi.com>
1849
1850
	* twisted/internet/: Replaced apply() in non-deprecated
1851
	twisted.internet modules with Direct Function Calls per
1852
	recommendation from PEP 290.
1853
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.
1863
1864
2003-03-05  Itamar Shtull-Trauring  <itamar@itamarst.org>
1865
1866
	* twisted/internet/: reactor.run() now accepts a keyword
1867
	argument, installSignalHandlers, indicating if signal handlers
1868
	should be installed.
1869
1870
2003-03-04  Tommi Virtanen  <tv@twistedmatrix.com>
1871
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.
1876
1877
2003-03-04  Tommi Virtanen  <tv@twistedmatrix.com>
1878
1879
	* twisted/scripts/tap2deb.py, doc/man/tap2deb.1: Option --version=
1880
	collided with global options, renamed to --set-version=.
1881
1882
2003-03-01  Jp Calderone  <exarkun@twistedmatrix.com>
1883
1884
	* twisted/scripts/twistd.py: Added --report-profile flag to twistd
1885
	daemon.
1886
1887
2003-02-24  Brian Warner  <warner@lothar.com>
1888
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.
1892
1893
2003-02-23  Kevin Turner  <acapnotic@twistedmatrix.com>
1894
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.
1898
1899
2003-2-19  Moshe Zadka <moshez@twistedmatrix.com>
1900
1901
	* twisted/web/monitor.py: Monitor web sites.
1902
1903
2003-2-20  Paul Swartz  <z3p@twistedmatrix.com>
1904
1905
	* twisted/internet/{app,default,interface,unix}.py: Add 'mode' argument
1906
	to the listenUNIX interface, which sets the filesystem mode for the
1907
	socket.
1908
1909
2003-2-18  Christopher Armstrong  <radix@twistedmatrix.com>
1910
1911
	* .: Release 1.0.4alpha1.
1912
1913
2003-2-18  Moshe Zadka <moshez@twistedmatrix.com>
1914
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.
1918
1919
2003-02-17  Paul Swartz  <z3p@twistedmatrix.com>
1920
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.
1925
1926
2003-02-16  Jp Calderone  <exarkun@twistedmatrix.com>
1927
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
1930
	possible each).
1931
1932
	* doc/examples/echoclient.py: Added UDP echo protocol
1933
	implementation; it is unused by default, but easily enabled.
1934
1935
2003-02-16  Cory Dodt  <corydodt@yahoo.com>
1936
1937
	* twisted/lore/{latex,default}.py: provide a --config book option
1938
	to Lore, for producing book-level documents from an index page.
1939
1940
2003-02-15  Jp Calderone  <exarkun@twistedmatrix.com>
1941
1942
	* twisted/scripts/mktap.py, twisted/scripts/twistd.py: Added the
1943
	--appname and --originalname parameters, respectively.
1944
1945
	* twisted/doc/man/mktap.py, twisted/doc/man/twistd.py: Documented
1946
	the above two new parameters.
1947
1948
2003-02-12  Kevin Turner  <acapnotic@twistedmatrix.com>
1949
1950
	* twisted/python/text.py (docstringLStrip): 1.6 This will be going
1951
	away in favor of inspect.getdoc.
1952
1953
2003-02-11  Kevin Turner  <acapnotic@twistedmatrix.com>
1954
1955
	* twisted/im/interfaces.py (IAccount): 1.4 New instance attribute:
1956
	"client".  Also, added methods getGroup and getPerson.
1957
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.
1961
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.
1969
1970
	* twisted/im/gtkchat.py (GtkChatClientUI.getPerson, .getGroup): 1.15
1971
	follow ChatUI interface changes.
1972
1973
2003-02-09  Brian Warner  <warner@lothar.com>
1974
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
1984
1985
	* ChangeLog: Set add-log-time-format to iso8601.
1986
1987
2003-02-09  Christopher Armstrong  <radix@twistedmatrix.com>
1988
1989
	* .: Releasing 1.0.3rc1.
1990
1991
2003-02-08  Moshe Zadka <moshez@twistedmatrix.com>
1992
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.
1995
1996
2003-02-07  Moshe Zadka <moshez@twistedmatrix.com>
1997
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.
2007
2008
2003-02-06  Bob Ippolito  <bob@redivi.com>
2009
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.
2014
2015
2003-02-04  Jp Calderone  <exarkun@twistedmatrix.com>
2016
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.
2022
2023
2003-01-31  Cory Dodt  <corydodt@yahoo.com>
2024
2025
	* twisted/lore/latex.py:  Don't treat comments like text nodes, just
2026
	  drop them.
2027
2028
2003-01-30  Jp Calderone  <exarkun@twistedmatrix.com>
2029
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
2036
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.
2042
2043
	* twisted/internet/app.py: listenWith, unlistenWith, and connectWith
2044
	methods added to Application.
2045
2046
	* twisted/internet/interfaces.py: IReactorArbitrary added.
2047
2048
2003-01-30  Kevin Turner  <acapnotic@twistedmatrix.com>
2049
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
2054
	exceptions."
2055
2056
2003-01-29  Donovan Preston  <dp@twistedmatrix.com>
2057
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
2062
2063
	* Uses a flat list of outstanding DOM nodes instead of
2064
	recursion to keep track of where Woven is in the page
2065
	rendering process
2066
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.
2072
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
2077
	reliable
2078
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
2084
2085
2003-01-29  Christopher Armstrong  <radix@twistedmatrix.com>
2086
2087
	* .: Releasing 1.0.2 Final.
2088
2089
	* .: Releasing 1.0.3alpha1. Release Often :-D
2090
2091
2003-01-29  Kevin Turner  <acapnotic@twistedmatrix.com>
2092
2093
	* twisted/internet/abstract.py (FileDescriptor.__init__): 1.36
2094
	Ephemeral.
2095
2096
	* twisted/internet/tcp.py (Port.__getstate__): 1.100 As an
2097
	Ephemeral, this needs no __getstate__.
2098
2099
2003-01-27  Kevin Turner  <acapnotic@twistedmatrix.com>
2100
2101
	* twisted/spread/ui/gtk2util.py (login): Perspective Broker login
2102
	dialog for GTK+ version 2.
2103
2104
2003-01-26  Christopher Armstrong  <radix@twistedmatrix.com>
2105
2106
	* .: Releasing 1.0.2rc1.
2107
2108
	* .: Releasing 1.0.2rc2 (rc1 was dead in the water; hlint bug now
2109
	fixed).
2110
2111
	* .: Releasing 1.0.2rc3 (rc2 was dead in the water;
2112
	twisted.lore.latex bug now fixed)
2113
2114
2003-01-26  Kevin Turner  <acapnotic@twistedmatrix.com>
2115
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.
2119
2120
	* twisted/im/basesupport.py
2121
	(AbstractClientMixin.registerAsAccountClient): 1.13 Gone.
2122
	chatui.registerAccountClient is called in AbstractAccount.logOn
2123
	instead.
2124
2125
2003-01-22  Dave Peticolas  <dave@krondo.com>
2126
2127
	* twisted/web/xmlrpc.py: add docstring for Proxy. handle
2128
	serialization errors. check for empty deferred on connectionLost.
2129
2130
	* twisted/test/test_internet.py: make sure wakeUp actually works
2131
2132
2003-01-21  Itamar Shtull-Trauring  <itamar@itamarst.org>
2133
2134
	* twisted/internet/defer.py: added utility method for
2135
	getting result of list of Deferreds as simple list.
2136
2137
2003-1-20  Jp Calderone <exarkun@twistedmatrix.com>
2138
2139
	* twisted/internet/interfaces.py: type argument removed from
2140
	IReactorCore.resolve method.  IReactorPluggableResolver interface
2141
	added.
2142
2143
	* twisted/internet/base.py: IReactorPluggable added to
2144
	ReactorBase.__implements__ and ReactorBase.installResolver added.
2145
2146
2003-1-18  Moshe Zadka <moshez@twistedmatrix.com>
2147
2148
	* twisted/trial/unittest.py twisted/scripts/trial.py: adding --summary
2149
2150
2003-01-15  Christopher Armstrong  <radix@twistedmatrix.com>
2151
2152
	* .: Releasing 1.0.2alpha3.
2153
2154
2003-01-13  Christopher Armstrong  <radix@twistedmatrix.com>
2155
2156
	* .: Releasing 1.0.2alpha2.
2157
2158
2003-01-11  Itamar Shtull-Trauring  <itamar@itamarst.org>
2159
2160
	* twisted/protocols/shoutcast.py: add client support for
2161
	Shoutcast MP3 streaming protocol.
2162
2163
2003-01-10  Itamar Shtull-Trauring  <itamar@itamarst.org>
2164
2165
	* twisted/scripts/twistd.py: in debug mode, jump into debugger for any
2166
	logged exception.
2167
2168
2003-01-10  Dave Peticolas  <dave@krondo.com>
2169
2170
	* twisted/trial/unittest.py: enable test cruft checking
2171
2172
	* twisted/test/test_policies.py: cleanup timers
2173
2174
	* twisted/protocols/policies.py: start/stop bandwidth timers as needed
2175
2176
	* twisted/test/test_internet.py: cleanup timers
2177
2178
	* twisted/test/test_woven.py: expire sessions to clean up timers
2179
2180
	* twisted/web/woven/guard.py: stop timer when session expires
2181
2182
2003-1-9  Moshe Zadka <moshez@twistedmatrix.com>
2183
2184
	* twisted/web/google.py: Search google for best matches
2185
2186
2003-01-09  Dave Peticolas  <dave@krondo.com>
2187
2188
	* twisted/protocols/http.py: start/stop log timer as needed
2189
2190
2003-01-08  Dave Peticolas  <dave@krondo.com>
2191
2192
	* twisted/test/test_smtp.py: cleanup timers after test
2193
2194
	* twisted/trial/unittest.py: keep errors that are logged and
2195
	submit them as test failures when tests are finished.
2196
2197
	* twisted/python/log.py: if errors are being kept, don't print
2198
	them
2199
2200
2003-1-8  Moshe Zadka <moshez@twistedmatrix.com>
2201
2202
	* doc/man/trial.1 twisted/scripts/trial.py: Add -l/--logfile argument
2203
	to allow giving a log file.
2204
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
2207
	excpected to pass.
2208
2209
2003-01-08  Jonathan M. Lange  <jml@mumak.net>
2210
2211
	* twisted/trial/*, bin/trial, twisted/scripts/trial.py,
2212
	doc/man/trial.1: Added 'trial', a new unit testing framework for
2213
	Twisted.
2214
2215
	* twisted/test/test_*, admin/runtests: Moved existing tests over to
2216
	trial.
2217
2218
2003-01-06  Glyph Lefkowitz  <glyph@twistedmatrix.com>
2219
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
2226
	documents.
2227
2228
2003-01-05  Brian Warner  <warner@lothar.com>
2229
2230
	* twisted/internet/cReactor/*, setup.py: Implement getDelayedCalls for
2231
	cReactor. Create cDelayedCall class, implement .cancel(), .reset(),
2232
	and .delay() for them.
2233
2234
2003-01-03  Jp Calderone  <exarkun@twistedmatrix.com>
2235
2236
	* twisted/python/components.py: Fix bug due to interaction between
2237
	Componentized subclasses and twisted.python.rebuild.rebuild()
2238
2239
	* twisted/python/reflect.py: Removed backwards compatability hack
2240
	for deprecated name twisted.protocols.telnet.ShellFactory and empty
2241
	oldModules dictionary.
2242
2243
2003-01-02  Brian Warner  <warner@lothar.com>
2244
2245
	* twisted/test/test_internet.py (DelayedTestCase): add test
2246
	coverage for IReactorTime.getDelayedCalls
2247
2248
2002-12-30  Brian Warner  <warner@lothar.com>
2249
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.
2253
2254
2002-12-30  Paul Swartz  <z3p@twistedmatrix.com>
2255
2256
	* twisted/conch/*: added docstrings to most conch classes and functions
2257
2258
2002-12-30  Brian Warner  <warner@lothar.com>
2259
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
2263
	forever.
2264
2265
2002-12-29  Jp Calderone  <exarkun@twistedmatrix.com>
2266
2267
	* twisted/python/compat.py: Single module where all compatability
2268
	code for supporting old Python versions should be placed.
2269
2270
2002-12-28  Glyph Lefkowitz  <glyph@twistedmatrix.com>
2271
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.
2276
2277
2002-12-27  Paul Swartz <z3p@twistedmatrix.com>
2278
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
2281
	arguments.
2282
2283
	* twisted/conch/ui: moved ansi.py and tkvt100.py to t.c.ui so they are
2284
	away from the purely conch stuff.
2285
2286
2002-12-25  Christmas Armstrong  <radix@twistedmatrix.com>
2287
2288
	* .: Releasing 1.0.2alpha1 - Merry Christmas!
2289
2290
2002-12-25  Jp Calderone  <exarkun@twistedmatrix.com>
2291
2292
	* twisted/protocols/dict.py: dict client protocol implementation
2293
	from Pavel "Pahan" Pergamenshchik (<pp64@cornell.edu>)
2294
2295
2002-12-23  Jp Calderone  <exarkun@twistedmatrix.com>
2296
2297
	* doc/examples/testdns.py and doc/examples/dns-service.py added as
2298
	simple example of how to use new DNS client API.
2299
2300
2002-12-23  Moshe Zadka <moshez@twistedmatrix.com>
2301
2302
	* twisted/web/xmlrpc.py:  added XML RPC client support
2303
2304
2002-12-22  Paul Swartz  <z3p@twistedmatrix.com>
2305
2306
	* twisted/conch/ssh/keys.py, twisted/conch/ssh/asn1.py: support for
2307
	writing	public and private keys.
2308
2309
	* bin/ckeygen: new script to create public/private key pairs
2310
2311
2002-12-22  Jp Calderone  <exarkun@twistedmatrix.com>
2312
2313
	* twisted/protocols/dns.py: Support for AFSDB, RP, and SRV RRs
2314
	added.
2315
2316
2002-12-18  Jp Calderone  <exarkun@twistedmatrix.com>
2317
2318
	* twisted/persisted/dirdbm.py: copyTo and clear methods added
2319
	to DirDBM class
2320
2321
2002-12-18  Paul Swartz  <z3p@twistedmatrix.com>
2322
2323
	* twisted/conch/ssh/connection.py, twisted/test/test_conch: fixes to
2324
	work on Python 2.1.
2325
2326
	* twisted/internet/process.py: usePTY now can be an optional tuple of
2327
	(masterfd, slavefd, ttyname).
2328
2329
2002-12-18  Moshe Zadka <moshez@twistedmatrix.com>
2330
2331
	* twisted/web/rewrite.py: it works now, even when used as a rootish
2332
	resource. Also, the request.path is massaged.
2333
2334
2002-12-13  Dave Peticolas  <dave@krondo.com>
2335
2336
	* twisted/enterprise/util.py: support numeric type
2337
2338
2002-12-13  Moshe Zadka <moshez@twistedmatrix.com>
2339
2340
	* twisted/web/client.py: add 301/302 support
2341
2342
2002-12-13  Dave Peticolas  <dave@krondo.com>
2343
2344
	* twisted/test/test_ftp.py: give client time to start up (fixes
2345
	one test for gtk/gtk2 reactors)
2346
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)
2350
2351
	* twisted/internet/gtkreactor.py: remove redundant code
2352
2353
	* twisted/internet/gtk2reactor.py: remove redundant code
2354
2355
	* twisted/internet/abstract.py: fix spelling in documentation
2356
2357
2002-12-12  Dave Peticolas  <dave@krondo.com>
2358
2359
	* twisted/test/test_jelly.py: test class serialization
2360
2361
	* twisted/spread/jelly.py: join module names with '.' in
2362
	_unjelly_class
2363
2364
2002-12-12  Paul Swartz <z3p@twistedmatrix.com>
2365
2366
	* twisted/conch/pamauth.py: added, gives support for authentication
2367
	using PAM.
2368
2369
	* twisted/conch/*: support for the keyboard-interactive authentication
2370
	method which uses PAM.
2371
2372
2002-12-12  Moshe Zadka <moshez@twistedmatrix.com>
2373
2374
	* twisted/python/log.py: add setStdout, set logfile to NullFile by
2375
	default.
2376
2377
2002-12-11  Donovan Preston <dp@twistedmatrix.com>
2378
2379
	* Added new woven example, Hello World.
2380
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.
2384
2385
2002-12-11  Paul Swartz <z3p@twistedmatix.com>
2386
2387
	* twisted/conch/*: enabled 'exec' on the server, disabled core dumps,
2388
	and some fixes
2389
2390
2002-12-10  Paul Swartz  <z3p@twistedmatrix.com>
2391
2392
	* twisted/conch/*: many fixes to conch server, now works and can run
2393
	as root.
2394
2395
	* twisted/conh/ssh/session.py: fix root exploit where a python shell was
2396
	left acessable to anyone.
2397
2398
2002-12-10  Cory Dodt  <corydodt@yahoo.com>
2399
2400
	* t/scripts/postinstall.py: new.  Create shortcut icons on win32.
2401
2402
	* twisted-post-install.py: new.  Runs t/scripts/postinstall.py
2403
2404
	* setup.py: copy twisted-post-install.py during install_scripts
2405
2406
2002-12-09  Paul Swartz  <z3p@twistedmatrix.com>
2407
2408
	* twisted/internet/app.py: actually set the euid/egid if users ask
2409
2410
2002-12-09  Dave Peticolas  <dave@krondo.com>
2411
2412
	* twisted/test/test_conch.py: wait for ssh process to finish
2413
2414
	* twisted/scripts/postinstall.py: fix indentation
2415
2416
	* twisted/conch/identity.py: fix indentation
2417
2418
2002-12-09  Paul Swartz  <z3p@twistedmatrix.com>
2419
2420
	* twisted/conch/ssh/transport.py: don't accept host keys by default
2421
	because it's a huge security hole.
2422
2423
2002-12-09  Dave Peticolas  <dave@krondo.com>
2424
2425
	* twisted/enterprise/util.py: handle None as null
2426
2427
	* twisted/internet/interfaces.py: add missing 'self' argument
2428
2429
2002-12-08  Dave Peticolas  <dave@krondo.com>
2430
2431
	* pyunit/unittest.py: add missing 'self.' prefix to data member
2432
	reference
2433
2434
	* twisted/enterprise/util.py: make sure quoted values are strings
2435
	(fixes bug storing boolean types)
2436
2437
2002-12-06  Dave Peticolas  <dave@krondo.com>
2438
2439
	* twisted/test/test_internet.py: flush error to prevent failure
2440
	with non-destructive DeferredLists.
2441
2442
	* twisted/test/test_ftp.py: flush FTPErrors to prevent failures
2443
	with non-destructive DeferredLists.
2444
2445
	* twisted/test/test_defer.py: catch the errors to prevent failure
2446
	with non-destructive DeferredLists
2447
2448
	* twisted/enterprise/util.py: add some postgres types. boolean
2449
	types need to be quoted. remove unused selectSQL variable.
2450
2451
2002-12-05  Dave Peticolas  <dave@krondo.com>
2452
2453
	* twisted/enterprise/sqlreflector.py: fix some sql escaping
2454
	bugs. allow subclasses to override escaping semantics.
2455
2456
	* twisted/enterprise/util.py: allow quote function's string escape
2457
	routine to be overridden with a keyword argument.
2458
2459
2002-12-5  Moshe Zadka <moshez@twistedmatrix.com>
2460
2461
	* twisted/python/plugin.py: fixed a bug that got the wrong plugins.tml
2462
	if the package was installed in two different places
2463
2464
	* twisted/inetd/*, twisted/runner/*: moved inetd to runner, to live in
2465
	harmony with procmon
2466
2467
2002-12-04  Dave Peticolas  <dave@krondo.com>
2468
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.
2472
2473
	* admin/runtests: Add a 'gtk2' test type to use the gtk2reactor
2474
	for the test suite.
2475
2476
2002-12-2  Moshe Zadka <moshez@twistedmatrix.com>
2477
2478
	* twisted/web/client.py: web client
2479
2480
2002-11-30  Paul Swartz  <z3p@twistedmatrix.com>
2481
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.
2486
2487
2002-11-24  Donovan Preston  <dp@twistedmatrix.com>
2488
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.
2499
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
2502
	browser.
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.
2506
2507
2002-11-24  Christopher Armstrong  <radix@twistedmatrix.com>
2508
2509
	* .: Releasing 1.0.1.
2510
2511
2002-11-23  Jp Calderone <exarkun@twistedmatrix.com>
2512
2513
	* twisted/names/client.py, twisted/names/server.py: Client and
2514
	  server domain name APIs
2515
2516
	* twisted/tap/dns.py: 'mktap dns'
2517
2518
2002-11-23  Moshe Zadka <moshez@twistedmatrix.com>
2519
2520
	* twisted/scripts/twistd.py twisted/python/syslog.py: Add syslog support
2521
2522
2002-11-23  Kevin Turner  <acapnotic@twistedmatrix.com>, Sam Jordan  <sam@twistedmatrix.com>
2523
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
2532
2533
2002-11-20  Christopher Armstrong  <radix@twistedmatrix.com>
2534
2535
	* .: Releasing 1.0.1rc1
2536
2537
2002-11-16  Itamar Shtull-Trauring  <twisted@itamarst.org>
2538
2539
	* Multicast UDP socket support in most reactors.
2540
2541
2002-11-11  Glyph Lefkowitz  <glyph@twistedmatrix.com>
2542
2543
	* .: Releasing 1.0.1alpha4
2544
2545
	* .: Releasing 1.0.1alpha3
2546
2547
2002-11-10  Glyph Lefkowitz  <glyph@twistedmatrix.com>
2548
2549
	* .: Releasing 1.0.1alpha2
2550
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
2554
	extensions.
2555
2556
2002-11-04  Itamar Shtull-Trauring  <twisted@itamarst.org>
2557
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.
2561
2562
2002-10-25  Moshe Zadka <moshez@twistedmatrix.com>
2563
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
2568
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.
2573
2574
	* twisted/python/htmlizer.py: a Python->HTML colouriser
2575
2576
2002-10-23  Itamar Shtull-Trauring  <twisted@itamarst.org>
2577
2578
	* twisted/web/soap.py: experimental SOAP support, using SOAPpy.
2579
	See doc/examples/soap.py for sample usage.
2580
2581
2002-10-22  Christopher Armstrong  <radix@twistedmatrix.com>
2582
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
2587
	that implemented.
2588
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.)
2592
2593
2002-10-22  Moshe Zadka <moshez@twistedmatrix.com>
2594
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
2598
	pthreads.
2599
2600
	* twisted/internet/tksupport.py: tunable reactor iterate delay
2601
	parameter [by Jp Calderone]
2602
2603
2002-10-17  Moshe Zadka <moshez@twistedmatrix.com>
2604
2605
	* bin/websetroot twisted/scripts/websetroot.py: Added a program to set
2606
	the root of a web server after the tap exists
2607
2608
2002-10-14  Moshe Zadka <moshez@twistedmatrix.com>
2609
2610
	* twisted/web/vhost.py: add a virtual host monster to support twisted
2611
	sites behind a reverse proxy
2612
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
2615
2616
2002-10-13  Moshe Zadka <moshez@twistedmatrix.com>
2617
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
2621
2622
2002-10-12  Moshe Zadka <moshez@twistedmatrix.com>
2623
2624
	* twisted/internet/process.py twisted/internet/interfaces.py
2625
	twisted/internet/default.py: Add utility method to get output of
2626
	programs.
2627
2628
2002-10-11  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
2629
2630
	* twisted/internet/wxsupport.py: improved responsiveness of wxPython
2631
	GUI (50 FPS instead of 10 FPS).
2632
2633
2002-10-08  Brian Warner  <warner@twistedmatrix.com>
2634
2635
	* doc/howto: Added PB/cred and Application docs, updated Manhole
2636
	and Process docs. Moved Manhole from "Administrators" section to
2637
	"Developers" section.
2638
2639
2002-10-10  Moshe Zadka <moshez@twistedmatrix.com>
2640
2641
	* .: Releasing 0.99.4
2642
2643
2002-10-07  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
2644
2645
	* .: Release 0.99.4rc1
2646
2647
	* twisted/protocols/http.py: backed out changes to HTTP that
2648
	broke 0.99.3 twisted.web.distrib.
2649
2650
2002-10-7  Moshe Zadka <moshez@twistedmatrix.com>
2651
2652
	* twisted/web/script.py: Add ResourceTemplate which uses PTL for
2653
	creation of resources.
2654
2655
2002-10-7  Moshe Zadka <moshez@twistedmatrix.com>
2656
2657
	* twisted/tap/web.py: It is now possibly to add processors via
2658
	the command line
2659
2660
2661
2002-10-04  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
2662
2663
	* twistd: when running in debug mode (-b), sending a SIGINT signal
2664
	to the process will drop into the debugger prompt.
2665
2666
2002-10-5  Moshe Zadka <moshez@twistedmatrix.com>
2667
2668
	* .: Releasing 0.99.3
2669
2670
2002-10-01  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
2671
2672
	* twisted/protocols/http.py: Fixed many bugs in protocol parsing,
2673
	found by new unit tests.
2674
2675
2002-9-30  Moshe Zadka <moshez@twistedmatrix.com>
2676
2677
	* twisted/protocols/sux.py twisted/web/microdom.py: Made is possible
2678
	to sanely handle parse errors
2679
2680
2002-09-26  Kevin Turner  <acapnotic@twistedmatrix.com>
2681
2682
	* twisted/internet/app.py (_AbstractServiceCollection.removeService):
2683
	(MultiService.removeService): inverse of addService
2684
	(ApplicationService.disownServiceParent): inverse of setServiceParent
2685
2686
2002-9-27  Moshe Zadka <moshez@twistedmatrix.com>
2687
2688
	* .: Releasing 0.99.2
2689
2690
2002-09-26  Glyph Lefkowitz  <glyph@twistedmatrix.com>
2691
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).
2695
2696
2002-09-25  Kevin Turner  <acapnotic@twistedmatrix.com>
2697
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
2700
	command line.
2701
2702
2002-09-25  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
2703
2704
	* bin/tapconvert: made sure tapconvert program gets installed.
2705
2706
2002-09-24  Kevin Turner  <acapnotic@twistedmatrix.com>
2707
2708
	* twisted/web/resource.py (Resource.wasModifiedSince): revoked,
2709
	not adding this after all.  Instead,
2710
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.
2715
2716
2002-9-24  Moshe Zadka <moshez@twistedmatrix.com>
2717
2718
	* .: Releasing 0.99.2rc2
2719
2720
2002-9-23  Donovan Preston <dp@twistedmatrix.com>
2721
2722
	* Renaming domtemplate/domwidgets/dominput/wmvc to Woven
2723
	Woven - The Web Object Visualization Environment
2724
2725
	* Created package twisted/web/woven
2726
2727
	* Renamed domtemplate to template, domwidgets to widgets,
2728
	and dominput to input
2729
2730
	* Refactored wmvc into three modules, model, view, and controller
2731
2732
2002-9-23  Moshe Zadka <moshez@twistedmatrix.com>
2733
2734
	* twisted/spread/pb.py: add getObjectAtSSL, refactored into
2735
	getObjectRetreiver so more transports can be easily supported
2736
2737
2002-09-21  Kevin Turner  <acapnotic@twistedmatrix.com>
2738
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.
2742
2743
	* twisted/web/resource.py (Resource.wasModifiedSince): companion
2744
	method, override this to get sensible handling of
2745
	If-Modified-Since conditional requests.
2746
2747
2002-09-21  Glyph Lefkowitz  <glyph@twistedmatrix.com>
2748
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.
2758
2759
2002-09-20  Glyph Lefkowitz  <glyph@twistedmatrix.com>
2760
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.
2767
2768
2002-9-20  Moshe Zadka <moshez@twistedmatrix.com>
2769
2770
	* Documenting for others
2771
2772
	* setup.py: now setup.py can function as a module
2773
2774
	* twisted/enterprise/xmlreflector.py: deprintified
2775
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__
2782
2783
	* twisted/internet/base.py: changed ReactorBase's __name__, added
2784
	__all__
2785
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
2790
2791
	* twisted/python/components.py: added Adapter and setComponent
2792
2793
	* twisted/python/log.py: logging several strings works
2794
2795
	* twisted/python/reflect.py: fixed namedModule() to handle packages
2796
2797
	* twisted/web/dom*.py: added submodels, moved to microdom, removed
2798
	unsafe code
2799
2800
	* twisted/python/mvc.py: changed submodel support, added ListModel,
2801
	Wrapper
2802
2803
	* twisted/web/microdom.py: minidom compat fixes
2804
2805
2002-9-20  Jp Calderone <exarkun@twistedmatrix.com>
2806
2807
	* twisted/internet/error.py twisted/internet/process.py:
2808
	ProcessEnded -> ProcessTerminated/ProcessDone. Now it is possible
2809
	to read off the error code.
2810
2811
2002-9-19  Moshe Zadka <moshez@twistedmatrix.com>
2812
2813
	* twisted/scripts/twistd.py: Added ability to chroot. Moved directory
2814
	change to after loading of application.
2815
2816
2002-9-19  Moshe Zadka <moshez@twistedmatrix.com>
2817
2818
	* twisted/*: changed print to log.msg
2819
2820
	* bin/* twisted/scripts/*.py: move code from bin/ to modules
2821
2822
	* twisted/inetd/*.py: inetd server in twisted
2823
2824
	* twisted/protocols/sux.py twisted/web/microdom.py: XML parsing
2825
2826
	* twisted/conch/*.py: better logging and protocol support
2827
2828
	* twisted/cred/*.py: deprecation fixes
2829
2830
	* twisted/internet/app.py: add encryption
2831
2832
	* twisted/internet/base.py: fix deprecation, add DelayedCall,
2833
	move to connect*  from client*
2834
2835
	* twisted/internet/error.py: errno mapping works on more platforms,
2836
	AlreadyCalled, AlreadyCancelled errors
2837
2838
	* twisted/internet/gtkreactor.py: try requiring gtk1.2, timeout->idle
2839
2840
	* twisted/internet/interfaces.py: added IDelayedCall IProcessTransports
2841
2842
	* twisted/internet/javareactor.py: using failure, better dealing with
2843
	connection losing, new connect* API
2844
2845
	* twisted/internet/process.py: dealing better with ending
2846
2847
	* twisted/internet/protocol.py: factories have a "noisy" attribute,
2848
	added ReconnectingClientFactory BaseProtocol
2849
2850
	* twisted/internet/ptypro.py: fixed traceback
2851
2852
	* twisted/internet/reactor.py: better guessing of default
2853
2854
	* twisted/internet/tcp.py: failure
2855
2856
	* twisted/internet/win32eventreactor.py: update to new API, support GUI
2857
2858
	* twisted/manhole/service.py: fix deprecation
2859
2860
	* twisted/news/database.py: fix to be 2.1 compat., generating
2861
	message-id, bytes, lines, date headers, improved storage
2862
2863
	* twisted/news/news.py: UsenetClientFactory, UsenetServerFactory
2864
2865
	* twisted/persisted/marmalade.py: use twisted.web.microdom
2866
2867
	* twisted/protocols/ftp.py: dito, data port uses new client API
2868
2869
	* twisted/protocols/http.py: StringTransport instead of StringIO
2870
2871
	* twisted/protocols/irc.py: stricter parsing, avoid flooding
2872
2873
	* twisted/protocols/loopback.py: new reactor API, loopback over UNIX
2874
	sockets
2875
2876
	* twisted/protocols/nntp.py: more lenient parsing, more protocol support
2877
2878
	* twisted/protocols/oscar.py: new reactor API
2879
2880
	* twisted/python/components.py: fix setAdapter add removeComponent
2881
2882
	* twisted/python/failure.py: cleanFailure
2883
2884
	* twisted/python/log.py: can now log multiple strings in one go
2885
2886
	* twisted/python/logfile.py: fixed rotation
2887
2888
	* twisted/python/rebuild.py: better 2.2 support
2889
2890
	* twisted/python/util.py: getPassword
2891
2892
	* twisted/scripts/mktap.py: better --help, --type, encryption
2893
2894
	* twisted/spread/*.py: removed deprecation warnings
2895
2896
	* twisted/spread/util.py: improved Pager
2897
2898
	* twisted/tap/news.py: works saner now
2899
2900
	* twisted/tap/ssh.py: can specify authorizer
2901
2902
	* twisted/tap/words.py: can bind services to specific interfaces
2903
2904
	* twisted/web/distrib.py: now works on java too
2905
2906
	* twisted/web/domtemplate.py: improved cache
2907
2908
	* twisted/web/error.py: ForbiddenResource
2909
2910
	* twisted/web/html.py: lower-case tags
2911
2912
	* twisted/web/server.py: use components
2913
2914
	* twisted/web/static.py: added .flac, .ogg, properly 404/403,
2915
	lower-case tags
2916
2917
	* twisted/web/twcgi.py: fixed for new process API
2918
2919
	* twisted/web/widgets.py: lower-case tags
2920
2921
	* twisted/web/xmlrpc.py: new abstraction for long running xml-rpc
2922
	commands, add __all__
2923
2924
	* twisted/words/ircservice.py: new connectionLost API
2925
2926
	* twisted/words/service.py: refactoring and error handling
2927
2928
	* twisted/words/tendril.py: lots of fixes, it works now
2929
2930
2002-09-17  Donovan Preston  <dp@twistedmatrix.com>
2931
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.
2937
2938
2002-09-09  Andrew Bennetts  <spiv@twistedmatrix.com>
2939
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.
2944
2945
2002-08-30  Christopher Armstrong  <radix@twistedmatrix.com>
2946
2947
	* Releasing Twisted 0.99.1rc4. There was a bug in the acquisition
2948
	code, as well as a typo in TwistedQuotes.
2949
2950
2002-08-29  Christopher Armstrong  <radix@twistedmatrix.com>
2951
2952
	* Releasing Twisted 0.99.1rc3. A bug in the release script
2953
	left .pyc files in the tarball.
2954
2955
2002-08-29  Christopher Armstrong  <radix@twistedmatrix.com>
2956
2957
	* Releasing Twisted 0.99.1rc2. There was a bug with circular
2958
	imports between modules in twisted.python.
2959
2960
2002-08-28  Christopher Armstrong  <radix@twistedmatrix.com>
2961
2962
	* Releasing Twisted 0.99.1rc1.
2963
2964
2002-08-27  Donovan Preston  <dp@twistedmatrix.com>
2965
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.
2969
2970
2002-08-27  Glyph Lefkowitz  <glyph@twistedmatrix.com>
2971
2972
	* twisted.*: Lots of minor fixes to make JavaReactor work again.
2973
2974
2002-08-26  Andrew Bennetts  <andrew-twisted@puzzling.org>
2975
2976
	* twisted.python.logfile: Added the ability to disable log
2977
	rotation if logRotation is None.
2978
2979
2002-08-22  Jp Calderone  <exarkun@twistedmatrix.com>
2980
2981
	* twisted.news: Added a decent RDBM storage backend.
2982
2983
2002-08-21  Paul Swartz  <z3p@twistedmatrix.com>
2984
2985
	* doc/howto/process.html: Process documentation, too!
2986
2987
2002-08-20  Paul Swartz  <z3p@twistedmatrix.com>
2988
2989
	* doc/howto/clients.html: Client-writing documentation.
2990
2991
2002-08-20  Jp Calderone  <exarkun@twistedmatrix.com>
2992
2993
	* twisted.protocols.nntp: More protocol implemented: SLAVE, XPATH,
2994
	XINDEX, XROVER, TAKETHIS, and CHECK.
2995
2996
2002-08-19  Christopher Armstrong  <radix@twistedmatrix.com>
2997
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
3001
	files!
3002
3003
2002-08-19  Jp Calderone  <exarkun@twistedmatrix.com>
3004
3005
	* twisted.news, twisted.protocols.nntp: Additional RFC977 support:
3006
	HELP and IHAVE implemented.
3007
3008
2002-08-19  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3009
3010
	* twisted.internet.{process,win32eventreactor,etc}: New and
3011
	hopefully final Process API, and improved Win32 GUI support.
3012
3013
2002-08-18  Christopher Armstrong  <radix@twistedmatrix.com>
3014
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
3018
	scripts.
3019
3020
2002-08-18  Christopher Armstrong  <radix@twistedmatrix.com>
3021
3022
	* Releasing Twisted 0.99.0 final. No changes since rc9.
3023
3024
2002-08-17  Christopher Armstrong  <radix@twistedmatrix.com>
3025
3026
	* Releasing Twisted 0.99.0rc8, with a fix to tap2deb and
3027
	slightly updated options documentation.
3028
3029
	* Releasing Twisted 0.99.0rc9 with fixes to release-twisted
3030
	and doc/howto/options.html.
3031
3032
2002-08-16  Christopher Armstrong  <radix@twistedmatrix.com>
3033
3034
	* Releasing Twisted 0.99.0rc6, with some fixes to setup.py
3035
	* Releasing Twisted 0.99.0rc7, __init__.py fixes.
3036
3037
2002-08-15  Christopher Armstrong  <radix@twistedmatrix.com>
3038
3039
	* Releasing Twisted 0.99.0rc5, with some one severe bug-fix and
3040
	a few smaller ones.
3041
3042
2002-08-14  Christopher Armstrong  <radix@twistedmatrix.com>
3043
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
3046
	copyright.py
3047
	* Releasing Twisted 0.99.0rc3! I HATE TAGGING!
3048
	* Releasing Twisted 0.99.0rc4, some very minor errors fixed.
3049
3050
2002-08-14  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3051
3052
	* twisted.internet, twisted.cred: Applications and Authorizers are
3053
	now completely decoupled, save for a tiny backwards-compatibility.
3054
3055
2002-08-10  Christopher Armstrong  <radix@twistedmatrix.com>
3056
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().
3061
3062
2002-08-07  Jp Calderone  <exarkun@twistedmatrix.com>
3063
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.
3067
3068
2002-08-04  Bruce Mitchener  <bruce@twistedmatrix.com>
3069
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.
3073
3074
2002-08-02  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3075
3076
	* twisted.cred.service, twisted.internet.app: Application/Service
3077
	refactor: These two things should be less dependant on each other,
3078
	now.
3079
3080
2002-07-31  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3081
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
3085
	interface!
3086
3087
2002-07-30  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3088
3089
	* twisted.internet.kqueue: Thanks to Matt Campbell, we now have a
3090
	new FreeBSD KQueue Reactor.
3091
3092
2002-07-27  Christopher Armstrong  <radix@twistedmatrix.com>
3093
3094
	* doc/fun/Twisted.Quotes: Added our seekrut Twisted.Quotes file to
3095
	Twisted proper.
3096
3097
2002-07-26  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3098
3099
	* twisted.spread: "Paging" for PB: this is an abstraction for
3100
	sending big streams of data across a PB connection.
3101
3102
3103
2002-07-23  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3104
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.
3109
3110
2002-07-23  Bryce Wilcox-O'Hearn  <zooko@twistedmatrix.com>
3111
3112
	* twisted.zoot: Application-level implementation of Gnutella.
3113
3114
2002-07-21  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3115
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).
3118
3119
2002-07-15  Bryce Wilcox-O'Hearn  <zooko@twistedmatrix.com>
3120
3121
	* twisted.protocols.gnutella: Twisted now has an implementation of
3122
	the Gnutella protocol.
3123
3124
2002-07-15  Sean Riley  <sean@twistedmatrix.com>
3125
3126
	* twisted.sister: Now featuring distributed login.
3127
3128
2002-07-15  Paul Swartz  <z3p@twistedmatrix.com>
3129
3130
	* twisted.conch: A new implementation of ssh2, bringing Twisted
3131
	one step closer to being a complete replacement of all unix
3132
	services ;-)
3133
3134
2002-07-14  Christopher Armstrong  <radix@twistedmatrix.com>
3135
3136
	* Releasing Twisted 0.19.0! It's exactly the same as rc4.
3137
3138
2002-07-13  Christopher Armstrong  <radix@twistedmatrix.com>
3139
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
3142
	0.19.0.
3143
3144
2002-07-07  Christopher Armstrong  <radix@twistedmatrix.com>
3145
3146
	* Releasing Twisted 0.19.0rc3.
3147
3148
2002-07-07  Christopher Armstrong  <radix@twistedmatrix.com>
3149
3150
	* Releasing Twisted 0.19.0rc2.
3151
3152
2002-07-07  Christopher Armstrong  <radix@twistedmatrix.com>
3153
3154
	* Releasing Twisted 0.19.0rc1.
3155
3156
2002-07-07  Keith Zaback  <krz@twistedmatrix.com>
3157
3158
	* twisted.internet.cReactor: A new poll-based reactor written in
3159
	C. This is still very experimental and incomplete.
3160
3161
2002-07-07  Donovan Preston  <dp@twistedmatrix.com>
3162
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.
3168
3169
2002-06-26  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3170
3171
	* twisted.internet.process,interfaces,default: Process now
3172
	supports SetUID: there are new UID/GID arguments to the process
3173
	spawning methods/constructors.
3174
3175
2002-06-22  Paul Swartz  <z3p@twistedmatrix.com>
3176
3177
	* twisted.protocols.oscar: totally rewrote OSCAR protocol
3178
	implementation.
3179
3180
2002-06-18  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3181
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
3186
	called.
3187
3188
2002-06-10  Christopher Armstrong  <radix@twistedmatrix.com>
3189
3190
	* twisted/persisted/aot.py, bin/twistd,mktap, twisted/internet/app.py:
3191
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.
3197
3198
	I will be working on making the formatting better, soon, but it's
3199
	workable for now.
3200
3201
2002-06-08  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3202
3203
	* twisted.internet, twisted.tap.web: Add a --https and related
3204
	options to 'mktap web'; web is now much more SSL-friendly.
3205
3206
3207
2002-06-02  Itamar Shtull-Trauring  <twisted@itamarst.org>
3208
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.
3213
3214
2002-06-01  Christopher Armstrong  <radix@twistedmatrix.com>
3215
3216
	* .: Releasing Twisted 0.18.0
3217
3218
2002-05-31  Christopher Armstrong  <radix@twistedmatrix.com>
3219
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")
3223
3224
	* twisted/web/static.py: Fixed a bunch of bugs related to redirection
3225
	for directories.
3226
3227
	* .: Releasing Twisted 0.18.0rc2
3228
3229
2002-05-30  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3230
3231
	* Twisted no longer barfs when the Python XML packages aren't available.
3232
3233
2002-05-29  Christopher Armstrong  <radix@twistedmatrix.com>
3234
3235
	* .: Releasing Twisted 0.18.0rc1
3236
3237
2002-05-25  Christopher Armstrong  <radix@twistedmatrix.com>
3238
3239
	* twisted/spread/pb.py, twisted/internet/defer.py,
3240
	  twisted/python/failure.py, etc:
3241
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.
3247
3248
2002-05-24  Itamar Shtull-Trauring, Moshe Zadka <moshez@twistedmatrix.com>
3249
3250
	* twisted.mail cleanups:
3251
3252
		* basic bounce support.
3253
3254
		* removed telnet from mail tap
3255
3256
		* mail domains now receive service in __init__
3257
3258
		* split file system stuff into Queue (renamed from
3259
	          MessageCollection)
3260
3261
		* Put a Queue in service
3262
3263
	* twisted/protocol/smtp.py: changed SMTPClient API so that it returns
3264
	a file for the message content, instead of a string.
3265
3266
2002-05-23  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3267
3268
	* Twisted applications can now be persisted to XML files (.tax) with
3269
	the --xml option -- this is pretty verbose and needs some optimizations.
3270
3271
2002-05-22  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3272
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).
3276
3277
2002-05-21  Itamar Shtull-Trauring  <twisted@itamarst.org>
3278
3279
	* twisted/internet/gtkreactor.py: GTK+ support for win32; input_add
3280
	is not supported in win32 and had to be worked around.
3281
3282
2002-05-20  Itamar Shtull-Trauring  <twisted@itamarst.org>
3283
3284
	* twisted/pythor/defer.py, twisted/protocols/protocol.py,
3285
	  twisted/internet/defer.py, twisted/internet/protocol.py:
3286
3287
	    Moved defer and protocol to twisted.internet to straighten
3288
	    out dependancies.
3289
3290
2002-05-18  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3291
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.
3295
3296
2002-05-15  Andrew Bennetts <andrew-twisted@puzzling.org>
3297
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.
3302
3303
2002-05-12  Itamar Shtull-Trauring  <twisted@itamarst.org>
3304
3305
	* doc/specifications/banana.html: Documentation of the Banana protocol.
3306
3307
2002-05-06  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3308
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.
3312
3313
2002-05-04  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3314
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.
3320
3321
2002-05-04  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3322
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.
3325
3326
2002-04-29  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3327
3328
	* twisted/im/*: Refactored Twisted InstanceMessenger to seperate GUI
3329
	and logic. Also improved the UI a bit.
3330
3331
2002-04-28  Itamar Shtull-Trauring  <twisted@itamarst.org>
3332
3333
	* twisted/protocols/http.py: log hits using extended log format
3334
	and make web taps logfile configurable.
3335
3336
2002-04-26  Itamar Shtull-Trauring  <twisted@itamarst.org>
3337
3338
	* twisted/lumberjack/logfile.py: reversed order of rotated
3339
	logs - higer numbers are now older.
3340
3341
2002-04-24  Itamar Shtull-Trauring  <twisted@itamarst.org>
3342
3343
	* doc/examples/ircLogBot.py: We now have a sample IRC bot that logs
3344
	all messages to a file.
3345
3346
2002-04-24  Itamar Shtull-Trauring  <twisted@itamarst.org>
3347
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
3352
	__implements__.
3353
3354
2002-04-22  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3355
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.
3360
3361
2002-04-21  Chris Armstrong  <carmstro@twistedmatrix.com>
3362
3363
	* twisted/scripts/mktap.py: No more --manhole* options, use
3364
	'--append=my.tap manhole' now.
3365
3366
2002-04-20  Chris Armstrong  <carmstro@twistedmatrix.com>
3367
3368
	* .: Releasing Twisted 0.17.4.
3369
3370
	* twisted/internet/tcp.py: Make unix domain sockets *really*
3371
	world-accessible, rather than just accessible by "other".
3372
3373
2002-04-19  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3374
3375
	* twisted/web/{server,twcgi}.py: Fixed POST bug in distributed
3376
	web servers.
3377
3378
2002-04-19  Chris Armstrong  <carmstro@twistedmatrix.com>
3379
3380
	* .: Releasing Twisted 0.17.3.
3381
3382
2002-04-19  Glyph Lefkowitz  <carmstro@twistedmatrix.com>
3383
3384
	* twisted/web/distrib.py: Fix a bug where static.File transfers
3385
	over a distributed-web connection would not finish up properly.
3386
3387
2002-04-18  Chris Armstrong  <carmstro@twistedmatrix.com>
3388
3389
	* .: Releasing Twisted 0.17.2.
3390
3391
2002-04-18  Chris Armstrong  <carmstro@twistedmatrix.com>
3392
3393
	* twisted/news: A news server and NNTP protocol support courtesy of
3394
	exarkun. Another step towards Twisted implementations of EVERYTHING
3395
	IN THE WORLD!
3396
3397
2002-04-17  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3398
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.
3402
3403
2002-04-17  Donovan Preston <dp@twistedmatrix.com>
3404
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.
3409
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
3413
		filesystem.
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.
3419
3420
	2) Acquisition:
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
3433
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)
3443
3444
2002-04-17  Chris Armstrong  <carmstro@twistedmatrix.com>
3445
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'.
3450
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". :-)
3454
3455
2002-04-14  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3456
3457
	* HTTP 1.1 now supports persistent and pipelined connections.
3458
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.
3464
3465
2002-04-12  Kevin Turner  <acapnotic@twistedmatrix.com>
3466
3467
	* twisted/coil/plugins/tendril.py (TendrilConfigurator): New coil
3468
	configurator for words.tendril.
3469
3470
2002-04-10  Chris Armstrong  <carmstro@twistedmatrix.com>
3471
3472
	* .: Releasing Twisted 0.17.0
3473
3474
2002-04-10  Chris Armstrong  <carmstro@twistedmatrix.com>
3475
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.)
3479
3480
2002-04-10  Chris Armstrong  <carmstro@twistedmatrix.com>
3481
3482
	* twisted/protocols/irc.py: Some fix-ups to IRCClient and
3483
	DccFileReceive, from Joe Jordan (psy).
3484
3485
2002-04-10  Chris Armstrong  <carmstro@twistedmatrix.com>
3486
3487
	* twisted/reality: Gone. This is now in a completely separate plugin
3488
	package.
3489
3490
2002-04-09  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3491
3492
	* win32 process support seems to *finally* be working correctly. Many
3493
	thanks to Drew Whitehouse for help with testing and debugging.
3494
3495
2002-04-08  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3496
3497
	* coil refactored yet again, this time to use components and adapters.
3498
	The design is now much cleaner.
3499
3500
2002-04-08  Glyph Lefkowitz  <glyph@zelda.twistedmatrix.com>
3501
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.
3507
3508
2002-04-04  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3509
3510
	* Removed __getattr__ backwards compatibility in PB
3511
3512
2002-04-03  Chris Armstrong  <carmstro@twistedmatrix.com>
3513
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.
3517
3518
2002-04-01  Chris Armstrong  <carmstro@twistedmatrix.com>
3519
3520
	* .: Releasing Twisted 0.16.0.
3521
3522
2002-03-29  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3523
3524
	* Added Qt event loop support, written by Sirtaj Singh Kang and
3525
	Aleksandar Erkalovic.
3526
3527
2002-03-29  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3528
3529
	* Added a 'coil' command for configuring TAP files
3530
3531
2002-03-15  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3532
3533
	* XML-RPC published methods can now return Deferreds, and Twisted
3534
	will Do The Right Thing.
3535
3536
2002-03-13  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3537
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
3541
	for coil as well.
3542
3543
	* Checked in win32 Process support, and fixed win32 event loop.
3544
3545
2002-03-11  Glyph Lefkowitz  <glyph@janus.twistedmatrix.com>
3546
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.
3551
3552
2002-03-09  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3553
3554
	* Automatic log rotation for twistd. In addition, sending SIGUSR1
3555
	to twistd will rotate the log.
3556
3557
2002-03-07  Chris Armstrong  <carmstro@twistedmatrix.com>
3558
3559
	* .: Releasing Twisted 0.15.5.
3560
3561
2002-03-06  Glyph Lefkowitz  <glyph@zelda.twistedmatrix.com>
3562
3563
	* twisted/web/html.py: Got rid of html.Interface. This was a really
3564
	old, really deprecated API.
3565
3566
2002-03-06  Chris Armstrong  <carmstro@twistedmatrix.com>
3567
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.
3571
3572
2002-03-05  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3573
3574
	* twisted/internet/win32.py: New win32 event loop, written by
3575
	Andrew Bennetts.
3576
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.
3580
3581
	* twisted/internet/task.py: Fixed a bug where the schedular wasn't
3582
	installed in some cases.
3583
3584
2002-03-04  Moshe Zadka  <moshez@twistedmatrix.com>
3585
3586
	* twisted/web/server.py: authorizer.Unauthorized->util.Unauthorized
3587
	(leftovers from removing .passport references.)
3588
3589
	* twisted/names/dns.py: Added support for TTL.
3590
3591
2002-03-02  Chris Armstrong  <carmstro@twistedmatrix.com>
3592
3593
	* .: Releasing Twisted 0.15.4.
3594
3595
2002-03-02  Paul Swartz  <z3p@twistedmatrix.com>
3596
3597
	* twisted/words/ircservice.py: Send End-Of-MOTD message --
3598
	some clients rely on this for automatic joining of channels
3599
	and whatnot.
3600
3601
2002-03-02  Moshe Zadka  <moshez@twistedmatrix.com>
3602
3603
	* twisted/names/dns.py: Fixed bugs in DNS client
3604
3605
2002-03-01  Moshe Zadka  <moshez@twistedmatrix.com>
3606
3607
	* twisted/protocols/dns.py: Can now correctly serialize answers
3608
3609
	* twisted/names/dns.py: Can now do simple serving of domains
3610
3611
	* twisted/internet/stupid.py: Removed spurious debugging print
3612
3613
2002-02-28  Chris Armstrong  <carmstro@twistedmatrix.com>
3614
3615
	* .: Releasing 0.15.3.
3616
3617
2002-02-27  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3618
3619
	* twisted/mail/*, twisted/plugins.tml: The Mail server is now
3620
	COILable.
3621
3622
	* bin/twistd: security fix: use a secure umask (077, rather than 0)
3623
	for twistd.pid.
3624
3625
2002-02-26  Allen Short  <washort@twistedmatrix.com>
3626
3627
	* twisted/eco/eco.py, twisted/eco/sexpy.py: ECO now supports
3628
	backquoting and macros.
3629
3630
2002-02-26  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3631
3632
	* twisted/protocols/ftp.py, twisted/plugins.tml: Made the FTP
3633
	server COILable!
3634
3635
2002-02-26  Benjamin Bruheim  <phed@twistedmatrix.com>
3636
3637
	* twisted/web/distrib.py: Fixed a win32-compatibility bug.
3638
3639
2002-02-24  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3640
3641
	* twisted/protocols/socks.py: Made SOCKSv4 coilable, and fixed a
3642
	bug so it'd work with Mozilla.
3643
3644
2002-02-24  Chris Armstrong  <carmstro@twistedmatrix.com>
3645
3646
	* .: Releasing Twisted 0.15.2.
3647
3648
2002-02-24  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3649
3650
	* setup.py: Added plugins.tml and instancemessenger.glade installs
3651
	so mktap and t-im work in a 'setup.py install' install.
3652
3653
	* debian/rules: Install plugins.tml so mktap works in debian installs.
3654
3655
	* doc/man/mktap.1, twistd.1: Updated the man pages to be more accurate.
3656
3657
2002-02-24  Chris Armstrong  <carmstro@twistedmatrix.com>
3658
3659
	* bin/mktap: Better error reporting when we don't find
3660
	the plugins files.
3661
3662
	* bin/twistd: Print out the *real* usage description rather than
3663
	barfing when we get bad command line arguments.
3664
3665
2002-02-24  Moshe Zadka  <moshez@twistedmatrix.com>
3666
3667
	* debian/rules: Install the instancemessenger.glade file, so IM
3668
	will work in debian installs.
3669
3670
2002-02-24  Paul Swartz  <z3p@twistedmatrix.com>
3671
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.
3674
3675
2002-02-23  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3676
3677
	* twisted/tap/coil.py: There is now a tap-creator for COIL.
3678
3679
	* twisted/internet/stupidproxy.py: Now with COILability!
3680
3681
2002-02-23  Glyph Lefkowitz  <glyph@zelda.twistedmatrix.com>
3682
3683
	* bin/mktap: mktap now uses Plugins instead of searching through
3684
	twisted.tap. Yay for unified configuration systems!
3685
3686
3687
2002-02-22  Chris Armstrong  <carmstro@twistedmatrix.com>
3688
3689
	* twisted/im, twisted/words: t-im can now do topic setting (words
3690
	only), fixed the Group Metadata-setting interface in the service.
3691
3692
2002-02-22  Glyph Lefkowitz  <glyph@zelda.twistedmatrix.com>
3693
3694
	* twisted/manhole: COIL can now load Plugins.
3695
3696
2002-02-21  Glyph Lefkowitz  <glyph@zelda.twistedmatrix.com>
3697
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.
3701
3702
2002-02-21  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3703
3704
	* twisted.protocols.ftp: Fixed a lot of serious bugs.
3705
3706
2002-02-20  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3707
3708
	* twisted.protocols.telnet: the python shell now supports
3709
	multi-line commands and can be configured using coil.
3710
3711
2002-02-13  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3712
3713
	* twisted.lumberjack: a log rotation and viewing service.
3714
	Currently only log rotation is supported.
3715
3716
2002-02-12  Kevin Turner  <acapnotic@twistedmatrix.com>
3717
3718
	* twisted/words/ircservice.py (IRCChatter.irc_AWAY): Fix bug
3719
	where you can never come back from being away (at least using
3720
	epic4).  Closes: #%d
3721
3722
2002-02-11  Chris Armstrong  <carmstro@twistedmatrix.com>
3723
3724
	* twisted/web/widgets.py: Changed Gadget.page to Gadget.pageFactory
3725
	for clarity (this is backwards-compatible).
3726
3727
2002-02-10  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3728
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
3733
	RemoteReference
3734
3735
	* twisted/persisted/styles.py: pychecker bug fixes
3736
3737
2002-02-09  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3738
3739
	* bin/eco: Created a command-line interpreter for ECO.
3740
3741
	* doc/man/eco.1: man page for bin/eco
3742
3743
2002-02-09  Chris Armstrong  <carmstro@twistedmatrix.com>
3744
3745
	* twisted/eco/eco.py: Reverted evaluator state back to functional-ness
3746
	:) And added functions (anonymous and global), and broke various
3747
	interfaces
3748
3749
2002-02-09  Allen Short  <washort@twistedmatrix.com>
3750
3751
	* twisted/eco/eco.py: Refactored evaluator into a class, improved
3752
	python-function argument signatures, and added and/or/not functions.
3753
3754
2002-02-08  Kevin Turner  <acapnotic@twistedmatrix.com>
3755
3756
	* twisted/words/service.py, ircservice.py: Fixed annoying PING
3757
	bug, and added /topic support.
3758
3759
2002-02-08  Glyph Lefkowitz  <glyph@twistedmatrix.com>
3760
3761
	* twisted/eco: Initial prototype of ECO, the Elegant C Overlay
3762
	macro engine.
3763
3764
2002-02-02  Paul Swartz <z3p@twistedmatrix.com>
3765
3766
	* twisted/im/ircsupport.py:  Added support for the IRC protocol
3767
	to IM.
3768
3769
2002-02-02  Chris Armstrong <carmstro@twistedmatrix.com>
3770
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.
3774
3775
	* twisted/im/chat.py, twisted/im/pbsupport.py: added support for
3776
	displaying topics.
3777
3778
2002-02-02  Paul Swartz <z3p@twistedmatrix.com>
3779
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.
3783
3784
2002-02-02  Kevin Turner  <acapnotic@twistedmatrix.com>
3785
3786
	* twisted/words/ircservice.py (IRCChatter.receiveDirectMessage),
3787
	(IRCChatter.receiveGroupMessage),
3788
	(IRCChatter.irc_PRIVMSG): Added CTCP ACTION <-> emote translation
3789
3790
2002-02-01  Paul Swartz <z3p@twistedmatrix.com>
3791
3792
	* twisted/im/tocsupport.py: Added support for most of the TOC
3793
	protocol to IM.
3794
3795
3796
2002-02-01  Chris Armstrong  <carmstro@twistedmatrix.com>
3797
3798
	* twisted/im/*.py: added metadata/emote support to IM. "/me foo"
3799
	now triggers a backwards-compatible emote.
3800
3801
3802
2002-01-30  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3803
3804
	* twisted/internet/tcp.py: Fixed the bug where startFactory() would
3805
	get called twice.
3806
3807
2002-01-30  Chris Armstrong  <carmstro@twistedmatrix.com>
3808
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.
3812
3813
	* twisted/words/service.py: metadata support for words messages
3814
	(only {'style': 'emote'} is standardized as of yet)
3815
3816
2002-01-29  Itamar Shtull-Trauring <itamarst@twistedmatrix.com>
3817
3818
	* Added hook to tcp.Port and ssl.Port for limiting acceptable
3819
	  connections - approveConnection(socket, addr).
3820
3821
2002-01-27  Chris Armstrong  <carmstro@twistedmatrix.com>
3822
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 '#'.
3826
3827
2002-01-23  Glyph Lefkowitz  <glyph@zelda.twistedmatrix.com>
3828
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
3832
	signatures.
3833
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
3837
	upgrade.
3838
3839
	* Added a feature to Jelly: Jelly now supports unicode strings.
3840
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
3843
	application.
3844
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.
3848
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.
3853
3854
2002-01-15  Glyph Lefkowitz  <glyph@zelda.twistedmatrix.com>
3855
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.
3861
3862
2002-01-14  Kevin Turner  <acapnotic@twistedmatrix.com>
3863
3864
	* twisted/python/explorer.py: reimplementated.  So it's better.
3865
	And yes, I broke the API.
3866
3867
	* twisted/manhole/ui/spelunk_gnome.py: Less duplication of visages,
3868
	and they're draggable now too.
3869
3870
2002-01-13  Itamar Shtull-Trauring  <itamarst@twistedmatrix.com>
3871
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!).
3876
3877
	  cursor.execute("INSERT INTO foo VALUES (%s, %d), "it's magic", 12)
3878
3879
	  Problem is that different adaptors may have different codes for
3880
	  quoting.
3881
3882
	* First go at database for twisted.bugs. I hate RDBMS. I hate web.
3883
3884
--- 0.13.0 Release ---
3885
3886
# Local Variables:
3887
# add-log-time-format: add-log-iso8601-time-string
3888
# End: