{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

self._stopPolling()


#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

  • protocol switch boundaries (i.e. for TLS)

* layer 1: command/response pairs

  • handshaking for TLS?

* layer 2: structured command arguments (SCHEMA command)

  • how are arguments formatted, how are custom arguments defined

* layer 3: authentication (LOGIN command(s))

  • 3.0: change in schema after authentication

(offer only LOGIN -> offer application command)

  • 3.1: username password
  • 3.2: username / challenge response
  • 3.3: TLS

* 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.

  • It should have unittests written,
  • it's code brought in line with the coding standard,
  • it's longdesc pointing to the HTML documentation for the twistd tap plugin,


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
  • 80 cols
  • Extraneous whitespace
  • Coding convention
  • Docstring format

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:

  1. there is no metadata (description or keywords) in any of the pages I checked. I know google uses page content as its primary method for ranking, but I seem to remember not having any meta data was the topic of some discussion about negative impact
  2. Metadata might be useful for listing in web searches and index sites (usually the pull the summary info from the "description" data)
  3. your page titles (especially the home page) are a little brief. Page title is one of the highest weighted factors to google (as least it was the last time I check in on some SEO stuff). Another reason for the page titles are search engines / index sites. Again, its where they get summary info. What about:

"Twisted: Python based event-driven networking framework"


#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

Name Description Offset

Field Length
in
Bytes

Version Type of record format (5=NetFlow-5) 0 2
Count Number of flow records contained in the UDP packet (maximum of 30) 2 2
SysUpTime Value of SysUpTime ) when the UDP packet was sent (measured in milliseconds); SysUpTime measures how long the system has been up and running 4 4
Epoch Seconds Number of seconds between the epoch (January 1, 1970) and the time when the UDP packet was sent. (Epoch is a date used as the "beginning of time" for timestamps. Time values in Unix systems are represented as the number of seconds since the epoch.) 8 4
Nanoseconds Residual nanoseconds (billionth of a second) after the epoch second 12 4
Flows Seen Number of flows seen since PacketWise began emitting flow detail records 16 4
Engine Type User-configurable value (0-255) assigned to the PacketShaper that is emitting flow detail records. Use the setup flowrecords engineType command to assign a type to the unit. 20 1
Engine ID User-configurable value (0-255) assigned to the PacketShaper that is emitting flow detail records. Use the setup flowrecords engineID command to assign an ID to the unit. 21 1
Sampling Info n/a 22 2

NetFlow v5 Record Format

Name Description Offset

Field Length
in
Bytes

Source IPaddr IP address of the device that sent the flow 0 4
Destination IPaddr IP address of the destination device 4 4
Next hop router IP address n/a 8 4
Inbound snmpIFindex

SNMP index number that identifies the Inbound interface on the PacketShaper:

1 Inside (built-in)
2 Outside (built-in)
3 Upper_Inside (upper LEM) or Right_Inside (right LEM)
4 Upper_Outside (upper LEM) or Right_Outside (right LEM)
5 Lower_Inside (lower LEM) or Left_Inside (left LEM)
6 Lower_Outside (lower LEM) or Left_Outside (left LEM)

12 2
Outbound snmpIFindex

SNMP index number that identifies the Outbound interface on the PacketShaper:

1 Inside (built-in)
2 Outside (built-in)
3 Upper_Inside (upper LEM) or Right_Inside (right LEM)
4 Upper_Outside (upper LEM) or Right_Outside (right LEM)
5 Lower_Inside (lower LEM) or Left_Inside (left LEM)
6 Lower_Outside (lower LEM) or Left_Outside (left LEM)

14 2
Packet Count Number of packets in the flow 16 4
Byte Count Total number of bytes in the flow 20 4
Time at Start of Flow Value of SysUpTime when the first packet in the flow was seen (measured in milliseconds) 24 4
Time at End of Flow Value of SysUpTime when the last packet in the flow was seen (measured in milliseconds) 28 4
Source Port Port number of the device that the flow went out of 32 2
Destination Port Port number of the device that the flow went to 34 2
One pad byte n/a 36 1
TCP flags Protocol state (URG=32, ACK=16, PSH=8, RST=4, SYN=2, FIN=1). For example, a value of 27 indicates the flow had a SYN, ACK, PUSH, and FIN (2+16+8+1=27). 37 1
Layer 4 Protocol Type of layer 4 protocol. For example, ICMP=1, TCP=6, Telnet=14, UDP=17 38 1
IP Type of Service (ToS) / Diffserv Value that designates special handling of traffic (precedence, delay, throughput, and reliability) 39 1
Source Autonomous Sys ID n/a 40 2
Dest. Autonomous Sys ID n/a 42 2
Source Mask Bits Count n/a 44 1
Destination Mask Bits Count n/a 45 1
Two Pad Bytes n/a 46 2

#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 mail 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:

twisted.python.modules twisted.python.modules._ModuleIteratorHelper.getitem twisted.python.modules._ModuleIteratorHelper.getitem twisted.python.zshcomp twisted.vfs.backends.adhoc.AdhocDirectory?.child twisted.vfs.backends.adhoc.AdhocDirectory?.child twisted.vfs.backends.inmem.FakeDirectory?.child twisted.vfs.backends.inmem.FakeDirectory?.child twisted.vfs.ivfs.IFileSystemContainer.child twisted.vfs.ivfs.IFileSystemContainer.child twisted.words.protocols.jabber.client.XMPPClientFactory twisted.words.protocols.jabber.client.XMPPClientFactory twisted.words.xish.domish.Element twisted.web2.dav.xattrprops.xattrPropertyStore twisted.web2.dav.resource.DAVPropertyMixIn twisted.web2.client.http.EmptyHTTPClientManager.clientPipelining twisted.web2.client.http.EmptyHTTPClientManager.clientPipelining twisted.web2.client.http.EmptyHTTPClientManager.clientPipelining twisted.web2.client.interfaces.IHTTPClientManager.clientPipelining twisted.web2.client.interfaces.IHTTPClientManager.clientPipelining twisted.web2.client.interfaces.IHTTPClientManager.clientPipelining twisted.mail.maildir.StringListMailbox?.listMessages twisted.mail.maildir.StringListMailbox?.getMessage twisted.mail.maildir.StringListMailbox?.listMessages twisted.mail.maildir.StringListMailbox?.getMessage twisted.mail.pop3.IMailbox.listMessages twisted.mail.pop3.IMailbox.getMessage twisted.mail.pop3.IMailbox.listMessages twisted.mail.pop3.IMailbox.getMessage twisted.mail.pop3.Mailbox.listMessages twisted.mail.pop3.Mailbox.getMessage twisted.mail.pop3.Mailbox.listMessages twisted.mail.pop3.Mailbox.getMessage twisted.internet.defer.inlineCallbacks twisted.internet.defer.inlineCallbacks twisted.internet._dumbwin32proc._findShebang twisted.internet._dumbwin32proc._findShebang twisted.spread.jelly.Jellyable.jellyFor twisted.spread.flavors.RemoteCopy?.unjellyFor twisted.spread.flavors.RemoteCopy?.unjellyFor twisted.spread.flavors.RemoteCache?.unjellyFor twisted.spread.flavors.RemoteCache?.unjellyFor twisted.spread.jelly.Jellyable.jellyFor twisted.spread.jelly.Jellyable.jellyFor twisted.spread.jelly.Jellyable.jellyFor twisted.spread.jelly.Unjellyable.unjellyFor twisted.spread.jelly.Unjellyable.unjellyFor twisted.spread.banana.Banana.setPrefixLimit twisted.spread.banana.Banana.setPrefixLimit


#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 mail 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