{5} Assigned, Active Tickets by Owner (Full Description) (101 matches)
List tickets assigned, group by ticket owner. This report demonstrates the use of full-row display.
Stas Shtin
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #3278 | StartTLS doesn't work in AMP when both peers are TCP clients. | core | defect | 06/05/2008 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
In my application clients are connected to server that sometimes acts as a proxy for them. Secure communication is one of requirements, and data shouldn't be readable by server as well. When I send AMP's StartTLS command that should go from client A to client B through the proxy, I get an error from OpenSSL. After looking at TCP dump, I've found out that both clients are starting TLS connection by sending client hello, which leads to "Bad message type" failure. In my opinion, AMP should determine whether a peer should act as client or server for TLS connections depending on it being sender or receiver of StartTLS command, but not client or server for the TCP connection as it currently is. Otherwise it can't be used in non-trivial setups without monkey-patching. For client side, twisted.internet.tcp.BaseClient?.startTLS method is used to initiate TLS connection. It has an optional parameter client=1. So we can make the receiver of StartTLS amp command to act as server even if it on client side of connection. On server side, t.i.t.Server.startTLS is called that can in turn be used as TLS client, not server. But Server's optional parameter is server=1, so they have different method signature and duplicated code instead. I've made a patch that fixes the problem that should explain previous paragraph more clearly. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tv
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2734 | Access control mechanism for web2 | web2 | enhancement | 07/11/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Merge web2-access forward, rename to have this ticket in the name. (04:29:05) exarkun: Tv: Hello
(04:29:17) exarkun: Tv: What are you thoughts regarding /branches/tv/web2-access?
(10:29:06) Tv: exarkun: i think nobody ever reviewed web2-access
(10:29:28) Tv: exarkun: i still think it's a nice feature
(10:48:39) exarkun: Tv: The implementation seems contrary to the typical manner of authentication and authorization in Twisted.
(11:30:25) Tv: exarkun: feel free to comment further on *how* you would like it to look
(11:47:10) exarkun: Tv: cred wooo
(11:47:47) Tv: exarkun: yes, well, see how well the original web cred integration worked
(11:48:01) exarkun: Tv: fucking _fabulously_ what are you talking about?
(11:48:23) Tv: exarkun: about the fact that most people can't use it
(11:48:31) _keturn: are you talking about some ticket I should be paying attention to?
(11:48:32) exarkun: Tv: everyone can and must use it
(11:48:50) exarkun: _keturn: we're not even talking about a ticket. :)
(11:48:52) Tv: exarkun: nice disconnection, let me know when you want to come back to reality ;)
(11:48:58) radix: Tv: Why can't they use it?
(11:49:11) Tv: besides, cred does mostly user auth
(11:49:18) Tv: there's plenty of other ACL stuff
(11:49:24) Tv: on the phone
(11:49:36) exarkun: Tv: don't forget that "auth" is short for two things :)
(11:49:38) radix: Yes, ACL is out of the scope of cred. That is authorization.
(11:49:44) exarkun: Tv: an ACL is just one kind of authorization.
(11:49:50) Tv: radix: web2-access is meant to be ACL
(11:49:50) exarkun: radix: and cred does authorization
(11:49:54) exarkun: in addition to access to control
(11:49:57) exarkun: erasdlkj
(11:49:57) radix: well, ok
(11:50:00) exarkun: in addition to authentication
(11:50:03) radix: it gives you the first step to authorization :)
(11:50:16) exarkun: ACLs can be implemented with an avatar that has ACL logic in it
(11:51:06) radix: Tv: anyway, you didn't explain why people can't use cred
(11:51:18) radix: Tv: I will patiently await the end of your phone call.
(13:14:14) Tv: exarkun: so
(13:14:33) Tv: exarkun: one of the things i like about web2-access is that you can plug in ACL enforcers at any point in the resource tree
(13:15:20) Tv: exarkun: what i tend to do is have a full self-contained "app" that i just plug in to the resource tree, and the app takes care of its own ACL enforcement
(13:15:43) Tv: exarkun: and if you want global sysadmin-configured ACL enforcing, you can just use the same mechanism at the top level
(13:17:11) foom: OMG this is another conversation I've had like 50000 times, isn't it?
(13:17:15) foom: I think it's even on a ticket now
(13:17:56) Tv: probably yes
(13:18:58) foom: http://twistedmatrix.com/trac/ticket/2042
(13:23:21) Tv: most of that ticket seems to be mostly concerned about authenticating users
(13:23:39) Tv: and authorizing based on username
(13:23:46) Tv: web2-access also does source-IP etc
(13:30:27) Tv: the biggest connection between the web2-access branch and #2042, that i can see, is that web2-access would read that mythical userid string
(13:30:31) Tv: and allow comparing it
(13:30:45) Tv: but that's just one of the tests in web2-access
(13:31:45) foom: well, the whole philosophical argument you were starting to espouse is exact same thing, I think, as was being argued there.
(13:32:09) Tv: is anyone actually saying t
(13:32:11) Tv: err
(13:32:32) Tv: okay
(13:32:33) Tv: honestly
(13:32:46) Tv: as far as i care, glyph is an abstraction astronaut
(13:33:32) foom: btw, how does your thing compare with dav-acl-1608-4
(13:33:32) Tv: what i really want is a simple way to have a subtree of objects where one lower level subtree is only accessible to localhost
(13:36:11) foom: Tv: From the face of it, they're both doing quite similar things
(13:36:19) Tv: foom: perhaps
(13:36:30) Tv: i'm trying to figure out what's non-dav in 1608
(13:39:31) Tv: well on the simplest level, #1608 gives you nothing unless you drink DAV koolaid
(13:39:42) foom: only because it was implemented only for DAV resources
(13:39:56) foom: (I think)
(13:39:59) Tv: trying to find the generic bits from inside of it
(13:40:18) foom: dreid could probably do a better job of helping
(13:41:01) Tv: + return davxml.ACL(*[
(13:41:01) Tv: + davxml.ACE(
(13:41:01) Tv: + davxml.Grant(davxml.Privilege(privilege)),
(13:41:01) Tv: + davxml.Principal(davxml.All())
(13:41:01) Tv: + )
(13:41:01) Tv: + for privilege in privileges
(13:41:01) Tv: + ])
(13:41:34) dreid: nothing is non-dav in 1608
(13:41:45) dreid: it is an implementation of the WebDAV ACL protocol.
(13:41:54) dreid: It is more or less entirely dav specific.
(13:42:03) Tv: yeah, that's what it seemed like
(13:42:13) Tv: web2-access is more like
(13:42:14) Tv: # /friends subtree is shown to these hosts
(13:42:14) Tv: And( Segments('friends'),
(13:42:14) Tv: Or( Network('10.0.1.0/255.255.255.0'),
(13:42:14) Tv: Network('10.0.2.0/255.255.255.0'),
(13:42:14) Tv: ),
(13:42:14) Tv: ),
(13:42:24) Tv: talking about url segments, ip addresses, etc
(13:42:29) dreid: And figuring it out how to make it not dav specific is not my idea of a good time.
(13:42:30) exarkun: Tv: you can put multiple resource guards into a single url hierarchy
(13:42:40) dreid: also that thing exarkun said.
(13:42:41) foom: dreid: oh okay, I thought it had some stuff that might be more generic
(13:42:48) dreid: foom: generic is hard.
(13:42:49) Tv: exarkun: i want one login only, though
(13:42:50) exarkun: dreid: any progress being made on moving that branch somewhere?
(13:42:57) foom: exarkun: moving?
(13:42:59) exarkun: Tv: and that works too
(13:43:04) foom: exarkun: you mean merging?
(13:43:13) Tv: exarkun: good
(13:43:15) exarkun: causing any changes in it at all :)
(13:43:17) radix: foom: *that* question was asked a long time ago
(13:43:25) dreid: exarkun: No, we'll figure it out after the auth stuff settles down and we ship leopard.
(13:43:26) Tv: exarkun: now, do you think i should use guard for IP-based limits?
(13:43:36) exarkun: Tv: yes
(13:43:57) Tv: exarkun: maybe web2 has something called "guard" that is very different from nevow's guard..
(13:44:09) dreid: Tv: I've avoided calling it guard.
(13:44:35) Tv: exarkun: but web2-access's AccessControl tries to be such a thing you can put at any place in the tree
(13:44:35) exarkun: Tv: the shortcoming of nevow's guard is that it doesn't make credential type easily configurable
(13:44:46) exarkun: Tv: it has a hardcoded list of about three things it supports
(13:44:57) foom: web2-access's AccessControl is basically a guard, isn't it?
(13:45:12) Tv: foom: depending on what you mean by "guard", but I guess yes
(13:45:28) Tv: foom: it guards the resources underneath it in the tree
(13:45:43) exarkun: foom: the biggest difference, I think, is that with AccessControl you call a function and it returns a deferred which tells you if access is allowed or not
(13:45:44) Tv: according to a pluggable set of rules
(13:45:49) exarkun: foom: and then you do something based on that result
(13:46:02) foom: exarkun: so it's half of guard.
(13:46:14) exarkun: I suppose
(13:46:19) Tv: yeah, that's the IRule bit
(13:46:29) Tv: and AccessControl lets you combine those with And, Or, Not etc
(13:46:32) idnar: can I change the usage output from t.p.u.O to show the names of "positional" args?
(13:46:39) dreid: the stuff in #1608 works similarly, and there has been quite a bit of discussion about wether or not that is completely wrong.
(13:46:49) dreid: and by discussion I mean exarkun and glyph yelling at me. :)
(13:47:01) foom: glyph and exarkun like to yell at people about guard stuff
(13:47:35) exarkun: I don't like yelling at people at all
(13:47:48) itamar: I would argue that IP-based access control is orthogonal
(13:47:49) exarkun: I would like it if all of you jerks would stop making me do it
(13:47:50) exarkun: ;)
(13:47:50) Tv: exarkun: yes your style is more *passive* aggressive
itamar itamarst
(13:47:58) exarkun: itamarst: SHUT UP YOU DON'T KNOW ANYTHING YOU ASS GO AWAY
(13:48:04) itamar: for a *specific* resource
itamar itamarst
(13:48:09) itamar: not with a subtree language
(13:48:18) exarkun: itamarst: RAAAAAAAAAAAAAAAAAAAAAAAGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(13:48:31) itamar: because otherwise how would you hook it up to cred!@
itamar itamarst
(13:48:34) ***idnar gets popcorn
(13:48:49) Tv: itamar: the point of web2-access is that you can say things like "https OR localhost"
(13:49:14) itamar: that's probably something you want per-avatar
(13:49:14) itamar: but
(13:49:27) itamar: the basic implementation would have to be for resources
(13:49:32) itamar: since avatars are resources in web
(13:49:58) foom: don't start with that one again. :P
(13:50:10) itamar: ok whatver
(13:50:20) itamar: I'll go back to reading
(13:50:22) foom: there has to be a lower level function which does the access control decision. web2-access might be a good implemtation of that, and should be reviewed on that basis, at least.
(13:50:48) foom: how that is hooked up to other stuff is a point of argument, but however that happens, the lower level function is the same
(13:51:44) foom: That's how I'd like to see this branch move forward.
(13:52:11) exarkun: Okay!
(13:52:21) exarkun: It sounds like we aren't just going to delete it right now, then.
(13:52:31) Tv: foom: yay!
(13:52:34) exarkun: So how about someone files a ticket saying the thing foom just said
(13:52:42) Tv: foom: that works for me 100%
(13:52:48) exarkun: And then does the appropriate svn dance to make the branch line up with it
(13:53:22) exarkun: Anyone want to volunteer to do that?
(13:53:35) Tv: i still claim lack of understanding of goal
(13:53:43) foom: Tv: merge branch forward with a ticket number in it
(13:53:50) exarkun: The goal is to get rid of the "/branches/tv" directory in svn. ;)
(13:54:04) foom: Tv: then put it up for review and see if we can get it merged.
(13:54:20) Tv: ok
(13:54:39) foom: assuming it's ready for review, I don't know if you had it at that point or not?
(13:54:48) exarkun: And once all of the user branches directories are gone, I think we might generalize that goal a little bit to resolving tickets with existing branches associated with them.
(13:55:07) exarkun: And once we make some progress on that, we might try to tackle the repo reorg
(13:55:46) dreid: omg
(13:55:54) exarkun: Tv: So you will make the ticket and merge the branch forward?
(13:56:14) Tv: yeah
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bigdog
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1124 | getHost and getPeer not needed for IProcessTransport | core | defect | 07/22/2005 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #3041 | windows signalProcess should call stopPolling() | core | defect | 02/18/2008 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The reactor was unclean on a couple of tests after calling signalProcess("KILL") adding a call to stopPolling() cleaned up the polling files. when a process is killed
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2992 | define/create AMP compliance suite | core | enhancement | 01/12/2008 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The goal of this activity is to define AMP compliance levels, and implement a compliance validation suite. Glyph started the ball rolling by proposing the following levels: * layer 0: binary boxes
* layer 1: command/response pairs
* layer 2: structured command arguments (SCHEMA command)
* layer 3: authentication (LOGIN command(s))
* layer 4: routing (_route key) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
count0
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1376 | hashed host entries in known_hosts for conch (SSH) | conch | enhancement | 12/23/2005 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
derfel
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2437 | Support for UDP-Lite | core | enhancement | 02/05/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This patch adds support for Lightweight User Datagram Protocol (UDP-Lite) (as per RFC 3828) which is similar to the User Datagram Protocol, but can also serve applications in error-prone network environments that prefer to have partially damaged payloads delivered rather than discarded. This could be help audio/video to use the "good" part of the packet and discard damaged one instead of lost the entire packet. This patch: * modify BasePort? class adding socketProtocol=0 to be used inside createInternetSocket() during socket creation. Value of 0 select default protocol, but this let us ovveride default protocol. * add listenUDPLite() to PosixReactorBase? class to create socket for UDP Lite and set checksum coverage to only the first 8 byte. I have kept this patch as small as possible. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
devinus
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2763 | md5 and sha module will be deprecated in python 2.6 | core | Python-2.6 | enhancement | 08/01/2007 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
We have to use the hashlib module available since python 2.5. Note that I saw this because stdio tests are failing on python trunk. I'm not sure it should be sensitive to warnings emitted... |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dreid
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2843 | twisted.web2.log.FileAccessLoggingObserver should take a file like object instead of a logPath. | web2 | Twisted-8.2 | defect | 10/04/2007 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Currently it takes a logPath which means it can not be used with file like objects like such as those in twisted.python.logfile that provide log rotation functionality. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #3051 | twisted.web2.tap has no unit tests and it's longdesc is ugly. | web2 | Twisted-8.2 | defect | 02/22/2008 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
It also doesn't have a test-case-name or a copyright notice.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
edsuom
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #881 | Deferred documentation should give an example of how to integrate blocking code | core | enhancement | 02/09/2005 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exarkun
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2564 | 'maximum recursion depth exceeded' when closing loopback transports | core | defect | 04/10/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
In twisted.protocols.loopback: _loopbackAsyncBody is used as the callback for deferreds called when _LoopbackQueue objects are updated. This callback returns a deferred. As a result, the calling deferred's _continue method is added to the returned deferred's callbacks. This creates a chain that increases by a link every time that _loopbackAsyncBody is called. If a test does lots of I/O, this chain will get quite large. If the test causes loseConnection on a _LoopbackTransport, _LoopbackTransport will be called and will return the result of calling twisted.internet.deferred.suceed, which is an already-called deferred. When the calling deferred adds it's _continue method to the alead-called deferred's callbacks, it will try to call all of the chained callbacks. This results in a 'maximum recursion depth exceeded' exception. I'm not sure why this callback returns a deferred. I guess it has something to do with "@return: A L{Deferred} which fires when the connection has been closed and both sides have received notification of this." from loopbackAsync's docstring. The implementation takes a wildly round-about and inefficient approach to implementing this. It seems as though there should be a much simpler and more direct way to achieve this. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2526 | Integrate Lore patches which do index generation for ThinkCSPy | lore | enhancement | 03/17/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
glyph
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #990 | Deferred cancellation | core | enhancement | 04/17/2005 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #733 | twisted's SIGCHLD handler breaks popen. | core | defect | 09/30/2004 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Highest priority is for regressions and reviews. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #791 | reapAllProcesses occassionally, as apparently signal delivery is unreliable | core | defect | 11/23/2004 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1382 | twisted.web.client.HTTPClientFactory sends Host header (and others) more than once | web | defect | 12/27/2005 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1957 | AMP needs protocol specification document in doc/core/specifications | core | defect | 07/26/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The AMP protocol needs protocol-level documentation in the style of doc/core/specifciations/banana.xhtml. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2357 | "twistd words" should also run an amp server | words | enhancement | 01/05/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
In the same style as #2328... There should be an AMP plugin for words which starts a chat server so that we can get the hell off of IRC. What is wrong with us? 5 years of network infrastructure development and we don't even have a chat server? What the hell? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2927 | proxyForInterface should really be proxyForInterface*s* | core | enhancement | 11/28/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
An object may implement more than one interface, and there's no use-case that I'm aware of to restrict this API to proxying for only one interface at a time. The prototypical use-case that I do know of, xmantissa.sharing, which implements a similar proxy class, requires the ability to share (or not) multiple interfaces. It does this to limit access; for example, a user who can retrieve an IRead proxy for object X might not be able to retrieve the IWrite proxy. This is high priority because I'd prefer to avoid a deprecation, since this API is still unreleased. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #3256 | use (and backport) python 2.6's signal functionality to avoid interruptions due to SIGCHLD | core | enhancement | 05/30/2008 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This is a subtask of #733. By itself, this won't provide much new functionality unless you actually build the packaged extension or use Python 2.6, but this will resolve #733 in those cases. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2967 | Patch to fix performance issue when twisted has spawned many processes | core | defect | 12/27/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Currently, twisted (process.py) does one waitpid for every process that it has spawned. If Twisted has a few thousand plus child processes alive still this can cause a huge slowdown (after a few hours twisted was spending 90% of its time doing waitpid). Alternatively, twisted could call waitpid(-1) just once to check if there are any processes that can be reaped. According to 'man waitpid', this should be called in a loop until there are no more child processes to be reaped. We're currently using a similar modification on our servers, and twisted rarely consumes more than 2% of the CPU now (previously was upwards of 20% .... would require restarts every 7-8 hours). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2193 | Element.setTagName change | web | enhancement | 10/25/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
From xquotient/scrubber.py: # GAWD this is cheap
# remind me to put it in a new release of Twisted at some point
def setTagName(self, tagName):
self.endTagName = self.nodeName = self.tagName = tagName
Element.setTagName = setTagName
Consider yourself reminded. :) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2535 | Allow Twisted to work without interfering with subprocess, popen, and other users of SIGCHLD on posix | core | enhancement | 03/21/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Twisted currently needs to install a SIGCHLD handler for reactor.spawnProcess to work reliably. This is problematic when Twisted is used with other libraries that depend on SIGCHLD (e.g. the standard library's subprocess module depends on SIGCHLD being left as SIG_DFL, otherwise it can get EINTR at unexpected times). Hence the reactor can be run with the installSignalHandlers=False flag, but then reactor.spawnProcess isn't reliable. However, when run with installSignalHandlers=False Twisted could use a different strategy for notifications of subprocess termination. spawnProcess could first fork a process that keeps a single file descriptor back to the parent open, and then forks the child that the caller of spawnProcess requested. Then first subprocess could simply do: pid = os.fork()
if pid:
returnVal = wait(pid)
os.write(fd, str(returnVal))
os.close(fd)
os._exit()
i.e. wait for the child process to finish, and then let the original process know the return value and exit. The original process would know that the subprocess was done when it saw the fd get closed, and would know what the return value was. It's ugly, but it might be better than nothing. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2993 | Document AMP routes | core | enhancement | 01/12/2008 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Glyph put together a nice AMP routes example. It would be useful to create document for the the use of these tidbits of useful functionality: from twisted.protocols.amp import IBoxReceiver, IBoxSender class AMPRoute(object): implements(IBoxSender) def __init__(self, routeName, router, receiver): self.routeName = routeName self.router = router self.receiver = receiver def sendBox(self, box): box['_route'] = self.routeName self.router.boxSender.sendBox(box) def unhandledError(self, failure): self.router.boxSender.unhandledError(failure) class AMPRouter(object): implements(IBoxReceiver) def __init__(self): self.routes = {} def registerRoute(self, receiver, name): route = self.routes[name] = AMPRoute(name, self, receiver) receiver.startReceivingBoxes(route) def startReceivingBoxes(self, boxSender): self.boxSender = boxSender def ampBoxReceived(self, box): self.routes[box.get('_route')].receiver.ampBoxReceived(box) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2995 | AMP add cred support | core | enhancement | 01/12/2008 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ready for discussion :-) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1997 | perhaps wakeUp could be slightly simpler | core | defect | 08/14/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The test for what thread we're in is unnecessary, and slightly worsens a race with select() because the handler could be called after processing events in the queue but before entering select(). We're leaving it this way for now, because the race is easier to trigger in its current configuration (and still exists in other configurations), but will be removing this redundant and unnecessary code either after or during the fix for the real underlying issue. See #791. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hagbard
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #972 | Add linux inotify support to twisted core | core | enhancement | 04/11/2005 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
jknight
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2185 | WSGI/PEP-333 and HTTP_CONTENT_TYPE vs CONTENT_TYPE | web2 | defect | 10/24/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Another paste lint finding. PEP333 defines CONTENT_TYPE and CONTENT_LENGTH but the CGI environment in twisted wsgi.py inherits the CGI style HTTP_ environ variables. This patch fixes it: --- twisted/web2/wsgi.py (revision 18460)
+++ twisted/web2/wsgi.py (working copy)
@@ -172,6 +172,13 @@
env['wsgi.multiprocess'] = False
env['wsgi.run_once'] = False
env['wsgi.file_wrapper'] = FileWrapper
+ if env.has_key('HTTP_CONTENT_TYPE'):
+ env['CONTENT_TYPE'] = env['HTTP_CONTENT_TYPE']
+ del env['HTTP_CONTENT_TYPE']
+ if env.has_key('HTTP_CONTENT_LENGTH'):
+ env['CONTENT_LENGTH'] = env['HTTP_CONTENT_LENGTH']
+ del env['HTTP_CONTENT_LENGTH']
self.environment = env
def startWSGIResponse(self, status, response_headers, exc_info=None):
Also see the thread @ http://mail.python.org/pipermail/web-sig/2005-December/001849.html and PEP-333 @ http://www.python.org/dev/peps/pep-0333/ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
jml
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1216 | Deprecation policy | release management | regular-releases | enhancement | 09/26/2005 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2436 | Improve conch's cosmetics | conch | task | 02/03/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mgarlapa
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2525 | Improve Lore's automated test coverage to UQDS standards | lore | enhancement | 03/17/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
moonfallen
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #102 | Support running Twisted code as NT services on Win32. | core | enhancement | 07/18/2003 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mwh
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2186 | pydoctor doesn't document code in __init__.py files | pydoctor | defect | 10/25/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
E.g. bzrlib.tests.TestCase? is not documented, and it's defined in bzrlib/tests/init.py. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1886 | pydoctor assumes all docs are in the same directory | pydoctor | enhancement | 07/01/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This has two bad effects: it's hard for packagers to package pydoctor's output for the different bits of twisted because if (say) twisted web's docs are in /usr/share/doc/twisted-web/ they should like to twisted core's docs in /usr/share/doc/twisted-core/ and this isn't currently possible. similarly, the pydoctor output for nevow should link to the pydoctor output for twisted, if it knows where it is. I think this can be addressed by loading a bunch of systems that know the base url of their documentation, and having the documentation generator look in more than just the system being generated when trying to link to something. Having written all this out, I don't think it should be too hard... |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
oubiwann
| Ticket | Summary | Component | Milestone | Type | Created | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1547 | Have old site content redirect to the appropirate tm.com/trac resource | website | enhancement | 03/06/2006 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
It's good that we still have these pages so that links don't randomly break, but we need to direct people who arrive at these pages to the real pages. For example, the project pages at tm.com/projects should redirect to tm.com/trac/wiki/TwistedProjects. If the old pages are no longer maintained we don't want people reading them based on old links. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2214 | twisted.web2.xmlrpc.XMLRPC._cbRender uses a bare except and doesn't log the failure. | web2 | defect | 11/03/2006 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
twisted.web2.xmlrpc.XMLRPC._cbRender should log the exception even if it doesn't send it over the wire. Otherwise debugging is a major PITA. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #463 | [PATCH] HTTP proxy support for XMLRPC client | web | enhancement | 01/04/2004 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #885 | Switch XMLRPC client to use twisted.web.client.getPage and expose its functionality | web2 | enhancement | 02/11/2005 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2261 | Front Page Sidebar CSS needs some work | website | enhancement | 12/04/2006 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The side bar on the wiki front page needs some CSS TLC. There should probably be a general "sidebar" CSS class, and then div ids such as "download" and "donate" can inherit from that. The "sidebar" CSS class needs to elimiate the excessive white space that is currently visible between the donation link and the Twisted book. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2289 | Page Titles and Metadata | website | enhancement | 12/09/2006 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
In an email from Rusty Wilson:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #3166 | Add Support for NetFlow | core | enhancement | 04/04/2008 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I would like to be able to parse NetFlow data from routers (or software probes such as softflowd), thus providing the ability to create Twisted-based NetFlow collectors. The first step in the support of NetFlow is creating a Twisted protocol. Below are some notes on the NetFlow header and record formats. NetFlow v5 Header
NetFlow v5 Record Format
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1549 | Add twisted.web2.xmlrpc docs and example code. | web2 | Web2-Gold-Master | task | 03/06/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Itamar's XML-RPC code is going into web2 any day now, and it will need some docs. I've started putting some together, and when I'm done, will have them reviewed for inclusion. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2097 | Web Site Maintenance Info | website | task | 09/15/2006 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
As I gather information relavant to maintaining the Twisted Web Presence, I will update this ticket. Hopefully this will not only be of use to me, but to those who come afterwards as well. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pcardune
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #3093 | Read in SVG illustrations into lore documents | lore | enhancement | 03/18/2008 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Add support to lore source files for the following syntax: <span class="svg" source="figure_nn.svg" /> which would replace the span tag with the contents of the svg file at compile time. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
radix
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2629 | passing the "why" argument to log.err is hard and crappy | core | enhancement | 05/07/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
try:
1/0
except:
log.err(None, "foo")
or log.err(_why="foo") trying to pass why= directly causes the following error: msg(failure=_stuff, why=_why, isError=1, **kw) TypeError: msg() got multiple values for keyword argument 'why' Which is dumb. Either _why= should be renamed to why= or the special passing of why=_why should only happen if _why is not None. Fixing this ticket should also entail fixing #2567 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2644 | Errors while writing dropin.cache should show a less horrible error message | core | enhancement | 05/14/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I suggest doing something like log.err("warning: Couldn't write dropin.cache file because %s" % (e,)) instead of log.err() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2891 | Automate updating the API docs on the twistedmatrix web site | release management | regular-releases | enhancement | 11/12/2007 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This also involves unix commands. (Jp: "Not that hard") |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spiv
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1536 | FTPClientBasic will fail on 'PORT' command | ftp | defect | 03/02/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
FTPClientBasic is missing generatePortCommand(self, port), therfor sending a port command using this class will fail. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1586 | FTP needs stream loving | ftp | enhancement | 03/17/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Having a stream (the thing from web2) for an FTP client would be handy. Conversation from IRC: htj spiv: /begin shameless plug: If you could add the possiblity of getting a stream (web2) for retrieving a file, you could make me quite happy. spiv htj: I think you might be able to do that with an adapter, not sure if it's already written. spiv htj: But I like that idea, please file a bug :) spiv Or a "ticket", as this new-fangled thing calls them ;) htj spiv: talked with exarkun and dreid about it yesterday, and I don't think it is. I'l file a ticket. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tekNico
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1516 | trac lets people assign and cc bugs to nonexistent users | website | defect | 02/28/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This is a problem because people might they think they've assigned or cc'd a bug to somebody, but effective just sent it to /dev/null. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1834 | Trac spews a RuntimeError when creating a New Ticket under some conditions. | website | defect | 06/19/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
1. go to http://twistedmatrix.com/trac/newticket 2. In the field at the top of that form labeled "Your email or username:", enter your email. 3. Submit the ticket 4. get something like this: Traceback (most recent call last):
File "/home/trac/Projects/trac/trunk/trac/web/main.py", line 283, in dispatch_request
dispatcher.dispatch(req)
File "/home/trac/Projects/trac/trunk/trac/web/main.py", line 170, in dispatch
resp = chosen_handler.process_request(req)
File "/home/trac/Projects/trac/trunk/trac/ticket/web_ui.py", line 83, in process_request
self._do_create(req, db)
File "/home/trac/Projects/trac/trunk/trac/ticket/web_ui.py", line 138, in _do_create
ticket.insert(db=db)
File "/home/trac/Projects/trac/trunk/trac/ticket/model.py", line 196, in insert
tktObs.ticket_added(self)
File "/home/trac/projects/trac/plugins/TICKET_EMAILER_MAN-ONE-py2.4.egg/ticket_emailer/ticket_emailer.py", line 128, in ticket_added
File "/home/trac/projects/trac/plugins/TICKET_EMAILER_MAN-ONE-py2.4.egg/ticket_emailer/ticket_emailer.py", line 95, in ticketAddedMessage
File "/home/trac/projects/trac/plugins/TICKET_EMAILER_MAN-ONE-py2.4.egg/ticket_emailer/ticket_emailer.py", line 86, in baseMessage
File "/home/trac/projects/trac/plugins/TICKET_EMAILER_MAN-ONE-py2.4.egg/ticket_emailer/ticket_emailer.py", line 53, in ticketVars
RuntimeError: Visit the 'User Configuration' page and enter an email address before you create a ticket.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1466 | one html page to get an overview of current released versions | website | enhancement | 02/03/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1546 | Add documentation search to site (including searching API) | website | enhancement | 03/06/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The trac search doesn't cover these pages. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
thijs
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #532 | Big jump from finger18.py to finger19.py in tutorial. | core | defect | 03/03/2004 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #684 | SMTPClient documentation doesn't describe sending multiple emails | defect | 08/21/2004 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #892 | twisted.web docs should talk about request.args and similar for render_POST | web | defect | 02/15/2005 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #917 | Not all the examples in the twisted.application.strports docstring are valid | core | defect | 03/11/2005 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1262 | Document Twisted copyright policy | core | defect | 10/09/2005 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2375 | these objects' docstrings are not proper epytext: | core | defect | 01/08/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
these objects' docstrings are not proper epytext:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #3099 | signal module shouldn't be imported unless it's used | core | defect | 03/19/2008 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I'm working on getting Twisted on Jython. Twisted already makes this conditional on runtime.platformType == 'posix'. Jython doesn't yet have a signal module, so this patch makes the import conditional as well. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #536 | Add IMAP server howto | enhancement | 03/04/2004 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1627 | Add SSL documentation | core | enhancement | 04/08/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
http://blog.vrplumber.com/356 http://blog.vrplumber.com/358 http://blog.vrplumber.com/371 http://blog.vrplumber.com/349 http://blog.vrplumber.com/310 http://www.vrplumber.com/programming/twistedlowlevel05.pdf MIT licenced. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2500 | Add @since to the coding standard | core | enhancement | 03/01/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The API documentation should be marked up with version information. Using an epytext field for this probably makes the most sense, but I don't really care so much about the actual mechanism, as long as the information is present. One annoying factor is that we don't always know the next version number for the full development time leading up to it. It might be nice to be able to drop a marker value in and have part of the release process replace it with a real value. There should be a similar standard for deprecations. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2541 | Decide on and document Python version support policy | core | enhancement | 03/27/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
It would be extremely useful to have written guidelines on when we drop support for a particular Python. For each version we support, there's an associated maintenance burden, so we don't want to support a version longer than necessary. On the other hand, having Twisted working on old versions of Python is helpful for people. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2801 | Link to howto's from API reference docs. | core | enhancement | 08/24/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
It would be nice to point people from the API docs for a module to the howto describing its usage. One reason is that sometimes a Google search will turn up the former and not the latter. Another is that because of ticket #38, sometimes fundamental parts of a module are not described in the API docs (e.g. twisted.python.log.msg) but do appear in the howto. Finally, in some cases the howto documents behavior that is not described in the API docs. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2909 | Document XXX Comment Policy | core | enhancement | 11/18/2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Add the following to the coding standard: XXX (or TODO) comments must include a date, the name of the person who filed it, a reference to the associated bug and some description of the conditions under which the commented code can be corrected and the comment removed. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #3175 | Core documentation should list reactor.callWhenRunning as a way to schedule events immediately | website | enhancement | 04/11/2008 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Discussed on IRC with <jml>: The core documentation at http://twistedmatrix.com/projects/core/documentation/howto/index.html discusses reactor.callLater in the scope of scheduling of events, but neglects to mention reactor.callWhenRunning, which should be emphasized as a clear(er) way to queue an action to run "immediately." We believe this documentation should be updated to include a discussion of this method. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #3253 | choosing reactor howto should explain how to install and then get the reactor | core | enhancement | 05/29/2008 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
It doesn't really explain that the way you get it is by doing 'from twisted.internet import reactor' after calling install(). I'm tempted to suggest that every single example in the document should just include the reactor import at the end. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #967 | Twisted dependancy list | core | enhancement | 04/05/2005 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2281 | Annotations for Twisted Finger Tutorial | core | enhancement | 12/07/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I've written some annotations for the Twisted Finger Tutorial, which provide background information and explain the unusual Python shortcuts in the examples. They're at http://sluggo.scrapping.cc/python/twisted_finger_gentle.txt . Please consider incorporating these into the tutorial. --Mike Orr <sluggoster@gmail.com> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #3045 | Coding standard should forbid the use of "foo %s" % notATuple | core | enhancement | 02/20/2008 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Usage of this has been discourage for some time however it should probably be listed in the coding standard. As exarkun points out it's also OK for the right side of the % operator to be a dict. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1852 | Replace uses of @ivar in interfaces with z.i.Attribute | core | defect | 06/23/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
yep, that. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1853 | Fix/eliminate @cvar in Interfaces. | core | defect | 06/23/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
In particular, twisted/names/dns.py IRecord. Others if they exist. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vertigo
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1092 | Creating standalone twisted win32 executables using py2exe | core | enhancement | 06/24/2005 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
warner
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1808 | Buildbot pyflakes stage | core | enhancement | 06/09/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This would catch things like #1801. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
wsanchez
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #3081 | Reintroduce web2.dav in trunk | web2.dav | enhancement | 03/16/2008 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Reintroduce web2.dav in trunk. This is gated on web2 becoming stable. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1569 | IRequest should have a uri object for accessing and mangling the requested uri | web2 | enhancement | 03/13/2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Currently IRequest contains several attributes which are used to access the requeste | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
