Monday, December 14, 2009

Sponsored Development, December 2009

Hello all,

It's been a while since my last report of sponsored Twisted development. After this hiatus, I'm happy to be able to bring you a new list of accomplishments I was able to achieve thanks to the support of the Twisted sponsors and the Software Freedom Conservancy.

The tickets I reviewed this time around (italics for tickets now resolved):

#3007 - Subsystem's connectionLost method executed twice in certain situation
#3226 - twisted.python.util.initgroups (and thus spawnProcess) potentially does tons of unnecessary IO
#3296 - Account for ISUPPORT information in irc_MODE when parsing mode strings
#3931 - t.p.amp.AmpBox.serialize will _not_ return a string if any value is unicode
#4009 - twisted.python.modules.PythonPath docstring typo
#4029 - Twisted Web's wsgi.input isn't sufficiently file-like in all cases
#4065 - Replace 'callable(foo)' with 'hasattr(foo_ "__call__")'

And the tickets I worked on (often with the help of others):

#733 - twisted's SIGCHLD handler breaks popen
#970 - twisted.names.root.Resolver eats filedescriptors
#1784 - disttrial --hosts=kunai_takkun_muon twisted
#2078 - Twisted shouldn't start processes until the reactor is running
#2884 - Tool to update / generate NEWS file
#3886 - Fixing the Socks4 proxy to be Socksv4a compliant
#3922 - twisted.protocols.amp.BinaryBoxProtocol.connectionLost chokes on reason = main.CONNECTION_DONE
#3932 - HTTPAuthSessionWrapper incorrectly returns a 500 if the wrapped resource doesn't implement the requested method
#3956 - Add arraysize option to runQuery in adbapi
#4019 - t.web.wsgi.WSGIResource - WSGI application error handling
#4029 - Twisted Web's wsgi.input isn't sufficiently file-like in all cases
#4031 - twisted.mail.smtp client doesn't really implement SASL LOGIN
#4049 - Error IMAP4Client.fetchSpecific an HTML body part
#4053 - Replace "x.has_key(y)" with "y in x"
#4063 - Ween trial's --dry-run away from the deprecated TestCase.visitor code
#4066 - `reduce` for Python 3.x
#4075 - Remove deprecated IReactorUDP.connectUDP
#4114 - Test all of the file-related twisted.web.wsgi code-paths with each of the possible file-like objects they might be used with
#4115 - lore -olint's `check_texturl_matches_href` and `check_a_py_listing` methods invoke getAttribute wrong
#4116 - Add a parameterized AMP argument type which can serialize and unserialize 0 or more of a specified type
#4131 - `twisted.web.client.Agent` does not add a Host header if `None` (the default) is passed for the `headers` argument to `request`
#4154 - Skip all release automation related tests on platforms which are not Linux

You can find more details about these tickets in the Twisted issue tracker. To look up a ticket, visit For example,

Additionally, you may have noticed that we managed to finally release Twisted 9.0. This was mostly thanks to the efforts of Chris Armstrong (as usual), but I also helped out reviewing some of that process.

This should signal the beginning of more regular sponsored development. Look forward to seeing another one of these reports soon. :)