<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;Ak8BRXw9eSp7ImA9Wx5SEkk.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542</id><updated>2010-08-07T23:27:34.261-07:00</updated><title>Twisted Matrix Laboratories</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://labs.twistedmatrix.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Christopher Armstrong</name><uri>http://www.blogger.com/profile/11041638059246049826</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>56</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/TwistedMatrixLaboratories" /><feedburner:info uri="twistedmatrixlaboratories" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DUcCQX0_cCp7ImA9Wx5SEk4.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-7273316726520823174</id><published>2010-08-07T20:11:00.000-07:00</published><updated>2010-08-07T20:11:00.348-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-07T20:11:00.348-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sponsorship" /><category scheme="http://www.blogger.com/atom/ns#" term="fluiddb" /><category scheme="http://www.blogger.com/atom/ns#" term="twisted" /><category scheme="http://www.blogger.com/atom/ns#" term="fluidinfo" /><category scheme="http://www.blogger.com/atom/ns#" term="txamqp" /><title>Fluidinfo sponsors Twisted!</title><content type="html">&lt;a href="http://fluidinfo.com/"&gt;Fluidinfo&lt;/a&gt; is Twisted's latest sponsor! &amp;nbsp;We asked if they could share some of the joys of sponsorship with us, and they had this to say about it:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
At Fluidinfo, we're heavy users of Twisted. All of our infrastructure depends on it. &lt;a href="http://fluidinfo.com/fluiddb/"&gt;FluidDB&lt;/a&gt;, our social database, is entirely built on Twisted, and we've released several core parts of it as open source:  &lt;a href="https://launchpad.net/txamqp"&gt;txAMQP&lt;/a&gt;,  &lt;a href="https://launchpad.net/txrdq"&gt;txRDQ&lt;/a&gt; and  &lt;a href="http://twistedmatrix.com/pipermail/twisted-python/2008-September/018442.html"&gt;txThrift&lt;/a&gt;. Not only that, but we have contributed to Twisted both with code and (albeit small) personal donations.&lt;/blockquote&gt;
&lt;blockquote&gt;
It's not just that sponsoring was the fair the thing to do, it has also produced tremendous results in a framework crucial to our business. When you donate to the TSF it's simple math that more bugs get fixed, but also the quality of the entire Twisted project is enhanced. And when that happens, all of our products are enhanced automatically without us writing one line of code. So sponsoring is not just an act of generosity, it's an investment in Fluidinfo. Using and sponsoring Twisted has been an indispensable "force multiplier" for a growing start-up like us.&lt;/blockquote&gt;
&lt;blockquote&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;– Esteve Fernandez&lt;/blockquote&gt;
&lt;blockquote&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; CTO, Fluidinfo Inc.&amp;nbsp;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-7273316726520823174?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/tRbMmuRiVJg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/7273316726520823174/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=7273316726520823174" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/7273316726520823174?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/7273316726520823174?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/tRbMmuRiVJg/fluidinfo-sponsors-twisted.html" title="Fluidinfo sponsors Twisted!" /><author><name>Jason J. W. Williams</name><uri>http://www.blogger.com/profile/17842669878335715910</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17245284356471137364" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2010/08/fluidinfo-sponsors-twisted.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcARHw8fyp7ImA9WxFbGUs.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-5408848478313864761</id><published>2010-07-12T12:17:00.003-07:00</published><updated>2010-07-12T12:47:25.277-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-12T12:47:25.277-07:00</app:edited><title>Sponsored Development, July 2010</title><content type="html">Hello readers,&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's that time once again.  I've just spent a very productive two weeks dedicated to Twisted developments, thanks to the support of the Twisted sponsors and the Software Freedom Conservancy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There were quite a few tickets to review when I got started this time.  Here's the list (italicised tickets are now resolved):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;#411 - Returning a Deferred from the callback of another Deferred too many times results a RecursionError&lt;/div&gt;&lt;div&gt;&lt;i&gt;#1384 - Document the meaning of trial's terminal output stanza&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;#1702 - Kill Defer.setTimeout&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;#2485 - 2to3 cross-compilation tools&lt;/i&gt;&lt;/div&gt;&lt;div&gt;#2661 - Deprecate IFinishableConsumer so it can be deleted&lt;/div&gt;&lt;div&gt;&lt;i&gt;#2680 - abdapi ConnectionPool doesn't allow for synchronous close&lt;/i&gt;&lt;/div&gt;&lt;div&gt;#3546 - Add custom time zone support to twisted.log.FileLogObserver&lt;/div&gt;&lt;div&gt;#3586 - I want to install twisted without a c compiler&lt;/div&gt;&lt;div&gt;#3802 - win32 SerialPort requires a reactor that provides "addEvent" method, but doesn't have a good error message if it gets a different one&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4038 - DeprecationWarning: the MimeWriter module is deprecated; use the email package instead&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4045 - Twisted's Failure fake '_Frame' object lacks f_locals&lt;/i&gt;&lt;/div&gt;&lt;div&gt;#4138 - A fresh Twisted checkout should support "setup.py sdist"&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4299 - Remove deprecated twisted.web.trp&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4328 - Deprecate twisted.python.text.docstringLStrip&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4378 - Error handling in NetstringReceiver broken&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4419 - IRCClient.noticed() default is prone to causing loops&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4477 - UNIX ports fail to log their path when stopped&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4511 - trial(1) man page says "I don't know why this is in trial." for --disablegc&lt;/i&gt;&lt;/div&gt;&lt;div&gt;#4519 - Delay parsing of request body until Request.args is accessed&lt;/div&gt;&lt;div&gt;#4520 - pb.CopiedFailure.throwExceptionIntoGenerator breaks in Python 2.6.&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4522 - Speed up `reactor.spawnProcess()` by only closing open file descriptors&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4527 - Change either documentation or code of t.i.test.reactormixins.ReactorBuilder.requiredInterface&lt;/i&gt;&lt;/div&gt;&lt;div&gt;#4531 - Static analysis of module attributes in twisted.python.modules&lt;/div&gt;&lt;div&gt;#4536 - Credentials materials are compared unsafely throughout Twisted&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4540 - t.n.hosts.searchFileFor does not close the file&lt;/i&gt;&lt;/div&gt;&lt;div&gt;#4555 - Replace loop-like uses of map() with a loop&lt;/div&gt;&lt;div&gt;#4566 - Improve lore2sphinx buildbot results for `projects/conch`&lt;/div&gt;&lt;div&gt;#4567 - Improve lore2sphinx buildbot results for `projects/core/development`&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Additionally, I had lots of time to spend worked on other tickets:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;i&gt;#526 - [PATCH] make t.w.microdom respect case sensitivity&lt;/i&gt;&lt;/div&gt;&lt;div&gt;#989 - Default log observer chokes on unicode messages&lt;/div&gt;&lt;div&gt;#1784 - disttrial --hosts=kunai,takkun,muon twisted&lt;/div&gt;&lt;div&gt;#2179 - Parameterize the root directory of the FTP server for non-anonymous logins&lt;/div&gt;&lt;div&gt;#3169 - Add FilePath.descendant(segmentsToChild) to replace fp.child(a).child(b).child(c)&lt;/div&gt;&lt;div&gt;#3242 - use python 2.5 'spwd' module instead of z3p secret 'shadow' module when available&lt;/div&gt;&lt;div&gt;&lt;i&gt;#3595 - the interaction of the fireOnOneErrback and consumeErrors parameters to DeferredList is not well documented&lt;/i&gt;&lt;/div&gt;&lt;div&gt;#3690 - SerialPort never calls connectionLost(reason)&lt;/div&gt;&lt;div&gt;#4300 - Write some unit tests for Deferreds&lt;/div&gt;&lt;div&gt;#4473 - strports.endpoint&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4487 - report multiple tests with the same results at the same time&lt;/i&gt;&lt;/div&gt;&lt;div&gt;#4492 - deprecatedModuleAttribute emits warning twice when deprecated module is imported&lt;/div&gt;&lt;div&gt;#4494 - FTPRealm home directory code hardcodes '/home'&lt;/div&gt;&lt;div&gt;#4500 - Use Sphinx for Twisted Documentation&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4501 - trial's error reporting (especially --tbformat=emacs) does not like unicode exceptions&lt;/i&gt;&lt;/div&gt;&lt;div&gt;#4503 - domish gets confused by spaces in xmlns names&lt;/div&gt;&lt;div&gt;#4504 - Document reactor.listenMulticast's listenMultiple keyword argument&lt;/div&gt;&lt;div&gt;#4513 - twisted.names server sends incorrect authority section&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4517 - documentation for blockingCallFromThread doesn't exactly say the given callable can return a Deferred&lt;/i&gt;&lt;/div&gt;&lt;div&gt;#4528 - t.news.database should use t.m.smtp.sendmail and the email package&lt;/div&gt;&lt;div&gt;#4534 - Update twisted.application.service.IProcess to use Attributes&lt;/div&gt;&lt;div&gt;#4535 - zippath.child('..') does not raise InsecurePath&lt;/div&gt;&lt;div&gt;#4536 - Credentials materials are compared unsafely throughout Twisted&lt;/div&gt;&lt;div&gt;#4539 - fileno() gets called on a ReadDescriptor after removing it from the reactor&lt;/div&gt;&lt;div&gt;#4542 - `LineReceiver` API documentation should indicate when delimiter is stripped etc&lt;/div&gt;&lt;div&gt;&lt;i&gt;#4556 - KQueue reactor misspelled in reactorbuilder&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;You can find more details about these tickets in the Twisted issue tracker. To look up a ticket, visit http://twistedmatrix.com/trac/ticket/ticketnumber. For example, &lt;a href="http://twistedmatrix.com/trac/ticket/4487"&gt;http://twistedmatrix.com/trac/ticket/4487&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Many of these which are still open are now up for review and should be closed over the next few weeks as other developers have a chance to take a look and provide feedback.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A careful reading of this list reveals a few tickets related to our attempts to convert Twisted's documentation from Lore to Sphinx, an undertaking you already know about if you follow the Twisted mailing list.  Kevin Horn has spearheaded this project and made great progress towards the goal.  Even though the conversion isn't complete yet, there's already &lt;a href="http://buildbot.twistedmatrix.com/builds/sphinx-html-15620/"&gt;some really great looking results&lt;/a&gt;.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-5408848478313864761?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/RE6zqy6UVCY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/5408848478313864761/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=5408848478313864761" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/5408848478313864761?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/5408848478313864761?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/RE6zqy6UVCY/sponsored-development-july-2010_12.html" title="Sponsored Development, July 2010" /><author><name>Jean-Paul Calderone</name><uri>http://www.blogger.com/profile/15144405957500773467</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07503581337919630126" /></author><thr:total>1</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2010/07/sponsored-development-july-2010_12.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04CRXkyeSp7ImA9WxFbE04.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-8163627821172391535</id><published>2010-07-04T08:42:00.000-07:00</published><updated>2010-07-05T06:19:24.791-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-05T06:19:24.791-07:00</app:edited><title>Twisted 10.1.0 released</title><content type="html">Twisted 10.1.0 is finally out. It's a month late, but it's finally out there and free from the shackles of British rule.&lt;br /&gt;
&lt;br /&gt;
Highlights include:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Deferreds now support cancellation&lt;/li&gt;
&lt;li&gt;A new "endpoint" interface which can abstractly describe stream transport&amp;nbsp;endpoints such as TCP and SSL&lt;/li&gt;
&lt;li&gt;inotify support for Linux, which allows monitoring of file system events.&lt;/li&gt;
&lt;li&gt;AMP supports transferring timestamps&lt;/li&gt;
&lt;/ul&gt;Note also that this is the &lt;i&gt;last&lt;/i&gt;&amp;nbsp;release in which we will support Windows for Python 2.4.&lt;br /&gt;
&lt;br /&gt;
For more information, see the &lt;a href="http://twistedmatrix.com/trac/export/29337/branches/releases/release-10.1.0-4509/NEWS"&gt;NEWS&lt;/a&gt; file.&lt;br /&gt;
&lt;br /&gt;
It's stable, backwards compatible, well tested and in every way an&amp;nbsp;improvement. Download it the &lt;a href="http://tmrc.mit.edu/mirror/twisted/Twisted/10.1/Twisted-10.1.0.tar.bz2"&gt;tarball&lt;/a&gt;, the &lt;a href="http://tmrc.mit.edu/mirror/twisted/Twisted/10.1/Twisted-10.1.0.winxp32-py2.5.msi"&gt;Windows installer for Python 2.5&lt;/a&gt; or the &lt;a href="http://tmrc.mit.edu/mirror/twisted/Twisted/10.1/Twisted-10.1.0.winxp32-py2.6.msi"&gt;Windows installer for Python 2.6&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update:&lt;/b&gt; We now have executable Windows installers for &lt;a href="http://tmrc.mit.edu/mirror/twisted/Twisted/10.1/Twisted-10.1.0.winxp32-py2.5.exe"&gt;Python 2.5&lt;/a&gt; and &lt;a href="http://tmrc.mit.edu/mirror/twisted/Twisted/10.1/Twisted-10.1.0.winxp32-py2.6.exe"&gt;Python 2.6&lt;/a&gt;&amp;nbsp;to complement the MSIs.&lt;br /&gt;
&lt;br /&gt;
Many thanks to Glyph Lefkowitz, who helped prepare the release, and the PyCon&amp;nbsp;2010 sprinters, who did so much of the work for this release.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-8163627821172391535?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/OpeyO26bm40" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/8163627821172391535/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=8163627821172391535" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/8163627821172391535?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/8163627821172391535?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/OpeyO26bm40/twisted-1010-released.html" title="Twisted 10.1.0 released" /><author><name>jml</name><uri>http://www.blogger.com/profile/11400080716012026985</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06159200095703820658" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2010/07/twisted-1010-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EBRHYyeSp7ImA9WxFVGUg.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-2363738719788926634</id><published>2010-06-19T05:47:00.000-07:00</published><updated>2010-06-19T05:47:35.891-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-19T05:47:35.891-07:00</app:edited><title>Twisted 10.1.0pre1 released – please test</title><content type="html">From the dank and grey depths of a London summer, a thin, reedy voice wanders&amp;nbsp;across the waves of the Internet, saying that it's jolly well pleased to&amp;nbsp;announce the first 10.1.0 pre-release.&lt;br /&gt;
&lt;br /&gt;
We would very much appreciate it if you could &lt;a href="http://people.canonical.com/~jml/Twisted/10.1.0pre1/"&gt;download the tarballs&lt;/a&gt;, test them on your systems, and &lt;a href="http://twistedmatrix.com/trac/newticket"&gt;file tickets&lt;/a&gt;&amp;nbsp;as appropriate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Highlights include:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Deferreds now support cancellation&lt;/li&gt;
&lt;li&gt;A new "endpoint" interface which can abstractly describe stream transport&amp;nbsp;endpoints such as TCP and SSL&lt;/li&gt;
&lt;li&gt;inotify support for Linux, which allows monitoring of file system events.&lt;/li&gt;
&lt;li&gt;AMP supports transferring timestamps&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
For more information, see the &lt;a href="http://twistedmatrix.com/trac/export/29337/branches/releases/release-10.1.0-4509/NEWS"&gt;NEWS&lt;/a&gt; file.&lt;br /&gt;
&lt;br /&gt;
If there is only positive feedback from the pre-release, we aim to do the final release some time later this month.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-2363738719788926634?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/eoTZsPOsaVU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/2363738719788926634/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=2363738719788926634" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/2363738719788926634?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/2363738719788926634?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/eoTZsPOsaVU/twisted-1010pre1-released-please-test.html" title="Twisted 10.1.0pre1 released – please test" /><author><name>jml</name><uri>http://www.blogger.com/profile/11400080716012026985</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06159200095703820658" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2010/06/twisted-1010pre1-released-please-test.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EMQnsyeyp7ImA9WxFWFE8.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-1073382241038662348</id><published>2010-05-27T08:52:00.000-07:00</published><updated>2010-06-01T15:01:23.593-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-01T15:01:23.593-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="twisted" /><category scheme="http://www.blogger.com/atom/ns#" term="lucasfilm" /><category scheme="http://www.blogger.com/atom/ns#" term="success-stories" /><title>Powering the Silver Screen</title><content type="html">Think Twisted is only good for Internet-facing servers? Even then, it's not like Python itself that touches every part of your day in some way, right? Well my friend, you'd be delightfully wrong.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;When you watch a movie crediting Lucasfilm for special effects, Twisted could be behind the scenes. Since 2004, Lucasfilm has used Twisted as part of its rendering operations to proxy database connectivity in the render farm (and much more), 24/7 x 365. That's right my friends, Twisted is not only the engine of your Internet...it might have a hand in your entertainment too.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To read more check out the great Success Story from Dave Peticolas from Lucasfilm: &lt;a href="http://twistedmatrix.com/trac/wiki/SuccessStories#Lucasfilm"&gt;Twisted at Lucasfilm&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Have your own success story using Twisted? Let us know! Just send an e-mail to &lt;a href="mailto:success@twistedmatrix.com"&gt;success@twistedmatrix.com&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-1073382241038662348?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/bWFVgCLeqg0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/1073382241038662348/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=1073382241038662348" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/1073382241038662348?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/1073382241038662348?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/bWFVgCLeqg0/powering-silver-screen.html" title="Powering the Silver Screen" /><author><name>Jason J. W. Williams</name><uri>http://www.blogger.com/profile/17842669878335715910</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17245284356471137364" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2010/05/powering-silver-screen.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YDQH0_fSp7ImA9WxFWFE4.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-8304744601071257665</id><published>2010-05-20T09:25:00.000-07:00</published><updated>2010-06-01T17:39:31.345-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-01T17:39:31.345-07:00</app:edited><title>Twisted Git (and Bzr) Mirror</title><content type="html">&lt;div&gt;With the multitude of distributed version control systems now available, it's getting pretty hard for any open source project to get by on a centralized system.  Distributed systems like bzr, mercurial, or git give equal tools to all contributors, not just a select few trusted to vette changes for inclusion in an official branch.  Forcing new contributors to work with diff and patch is just plain mean!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, while Twisted's source is still hosted in subversion, and likely will be for some time to come (due to various toolchain requirements), I'm happy to announce that there is now &lt;a href="http://svn.twistedmatrix.com/git/Twisted/.git/"&gt;a git mirror&lt;/a&gt; to complement the existing &lt;a href="http://svn.twistedmatrix.com/bzr/Twisted/"&gt;bzr mirror&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With these mirrors available, developers who don't have commit access to the subversion server can still work with Twisted using modern revision control tools - branching, merging, history, and all the rest.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The workflow for merging changes based on the bzr or git mirror back into Twisted trunk isn't yet completely worked out.  Likely it won't be until people start using these and trying to push changes back to us.  So if you're a fan of one of these two systems, please, start using these mirrors and help us figure out the best way to integrate things back into subversion.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-8304744601071257665?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/amhuzW-KsAE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/8304744601071257665/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=8304744601071257665" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/8304744601071257665?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/8304744601071257665?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/amhuzW-KsAE/twisted-git-and-bzr-mirror.html" title="Twisted Git (and Bzr) Mirror" /><author><name>Jean-Paul Calderone</name><uri>http://www.blogger.com/profile/15144405957500773467</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07503581337919630126" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2010/05/twisted-git-and-bzr-mirror.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMHRn4-eCp7ImA9WxFREk8.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-1725918494765803236</id><published>2010-04-25T09:07:00.000-07:00</published><updated>2010-04-25T12:40:37.050-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-25T12:40:37.050-07:00</app:edited><title>Twisted test suite code coverage</title><content type="html">As anyone who's contributed to Twisted knows, we currently have &lt;a href="http://twistedmatrix.com/trac/wiki/ReviewProcess#Authors:Thingsyourbranchorpatchmustcontain"&gt;a very high standard&lt;/a&gt; for code changes and additions.  For a long time, we've relied mainly on the &lt;a href="http://docs.python.org/library/trace.html"&gt;standard library trace module&lt;/a&gt;.  The trace module is quite serviceable, but recently some other options have come along which are much better.  In particular, &lt;a href="http://nedbatchelder.com/code/coverage/"&gt;coverage.py&lt;/a&gt; seems to provide enough additional features that it's actually worth integrating into Twisted's development process.  For example, it has some basic branch coverage features (trace will show you what lines were executed; coverage.py will show you this, plus tell you whether both possible outcomes of your "if" statement were taken), and can generate fairly nice HTML reports.&lt;br /&gt;&lt;br /&gt;So, as a first step, I've set up a &lt;a href="http://buildbot.twistedmatrix.com/builders/twisted-coverage.py"&gt;coverage.py builder&lt;/a&gt; on &lt;a href="http://buildbot.twistedmatrix.com/"&gt;Twisted's BuildBot&lt;/a&gt;.  This means that code coverage reports are part of Twisted's continuous integration system now: for every trunk revision, new coverage reports will be generated.  At the moment, these reports end up jumbled up in the &lt;a href="http://buildbot.twistedmatrix.com/builds/"&gt;builds directory&lt;/a&gt; along with a lot of other stuff.  For example, &lt;a href="http://buildbot.twistedmatrix.com/builds/twisted-coverage.py-r28849/"&gt;here's the latest report&lt;/a&gt; as of this post.  Something I still want to do is clean up how these reports are organized so they're easier to find and compare.&lt;br /&gt;&lt;br /&gt;As you can see from this report, Twisted has 86% line coverage and 67% branch coverage (which I had to compute myself from the totals at the bottom of the page - one of a few coverage.py nits that I hope will be fixed soon :).  coverage.py decides this makes overall coverage 83%, though I'm not sure how exactly it arrives at that number.&lt;br /&gt;&lt;br /&gt;That's pretty good, but there's plenty of room for improvement.  I hope these reports will become an easy way for people to find areas of Twisted which need more coverage and motivate them to contribute new tests.&lt;br /&gt;&lt;br /&gt;Oh, and since coverage.py only reports on Python coverage, I've also set up a &lt;a href="http://buildbot.twistedmatrix.com/builders/twisted-gcoverage"&gt;gcov/lcov builder&lt;/a&gt; which uploads its coverage reports for execution of the C code in Twisted to &lt;a href="http://buildbot.twistedmatrix.com/builds/twisted-coverage-report-r28847/"&gt;a similar location&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-1725918494765803236?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/vZGYAM0FIRI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/1725918494765803236/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=1725918494765803236" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/1725918494765803236?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/1725918494765803236?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/vZGYAM0FIRI/twisted-test-suite-code-coverage.html" title="Twisted test suite code coverage" /><author><name>Jean-Paul Calderone</name><uri>http://www.blogger.com/profile/15144405957500773467</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07503581337919630126" /></author><thr:total>2</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2010/04/twisted-test-suite-code-coverage.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAHQn0-fCp7ImA9WxFTEU8.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-5973205131602864654</id><published>2010-03-30T20:12:00.000-07:00</published><updated>2010-04-01T04:18:53.354-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-01T04:18:53.354-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="news" /><category scheme="http://www.blogger.com/atom/ns#" term="txRedis" /><category scheme="http://www.blogger.com/atom/ns#" term="twisted" /><category scheme="http://www.blogger.com/atom/ns#" term="txamqp" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="success-stories" /><category scheme="http://www.blogger.com/atom/ns#" term="libraries" /><category scheme="http://www.blogger.com/atom/ns#" term="powercard" /><title>New, New, New!</title><content type="html">&lt;b&gt;New Success Story&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;We've added a great &lt;a href="http://twistedmatrix.com/trac/wiki/SuccessStories"&gt;success story&lt;/a&gt; for PowerCard, a loyalty rewards program for local restaurants. One of the terrific things about the PowerCard story is the use of Twisted for &lt;b&gt;both&lt;/b&gt; back-end and client-facing systems. It's a great reminder that Twisted is as useful solving problems on Windows platforms as it is on the Linux/UNIX-based systems many of us code for.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://twistedmatrix.com/trac/wiki/SuccessStories#PowerCard"&gt;Read the full success story here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;New Library Listing&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;Looking to use Twisted with new technologies like RabbitMQ (txAMQP) and Redis (txRedis)? Browse the updated &lt;a href="http://twistedmatrix.com/trac/wiki/ProjectsUsingTwisted#Libraries%20and%20Add-Ons"&gt;libraries listing&lt;/a&gt;.  We bet you'll find what you're looking for.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;New Twisted Ambassador&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;And why do we have these new and updated listings for 3rd-party code?  It's because we have a new guy who has volunteered to maintain and update the listings!&lt;br /&gt;&lt;br /&gt;Jason J. W. Williams is Twisted's new ambassador to 3rd-party projects of all kinds.Primarily this responsibility involves keeping the "&lt;a href="http://twistedmatrix.com/trac/wiki/SuccessStories"&gt;Success Stories&lt;/a&gt;" and "&lt;a href="http://twistedmatrix.com/trac/wiki/ProjectsUsingTwisted"&gt;Projects Using Twisted&lt;/a&gt;" pages up to date, and occasionally writing small updates (like this one) for the news feed.&lt;br /&gt;&lt;br /&gt;Please contact &lt;span class="Apple-style-span" style="font-weight: bold;font-family:'trebuchet ms',verdana,arial,'Bitstream Vera Sans',helvetica,sans-serif;font-size:13px;"  &gt;success at twisted matrix dot com &lt;/span&gt;if you have a success story about how you used Twisted, a pointer to some hitherto unknown code that uses Twisted, or for more information.  And watch this space for more updates!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-5973205131602864654?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/TwmX9OAIn4E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/5973205131602864654/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=5973205131602864654" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/5973205131602864654?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/5973205131602864654?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/TwmX9OAIn4E/new-new-new.html" title="New, New, New!" /><author><name>Jason J. W. Williams</name><uri>http://www.blogger.com/profile/17842669878335715910</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17245284356471137364" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2010/03/new-new-new.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4FQXk_fCp7ImA9WxBaE04.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-8968426469975486946</id><published>2010-03-22T02:38:00.000-07:00</published><updated>2010-03-23T02:35:10.744-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-23T02:35:10.744-07:00</app:edited><title>Barcelona Twisted Sprint</title><content type="html">Yesterday's Twisted sprint at the Flumotion office was quite a success.  There were six of us there, and many first time Twisted contributors.&lt;br /&gt;&lt;br /&gt;Jan Urbański worked on fixing a couple &lt;a href="http://twistedmatrix.com/trac/ticket/2278"&gt;IMAP4 client&lt;/a&gt; &lt;a href="http://twistedmatrix.com/trac/ticket/4080"&gt;search bugs&lt;/a&gt;.  He also spent some time using psycopg's asynchronous interface to create a very Twisted-friendly postgres API, with methods that return Deferreds, and all without using any threads.&lt;br /&gt;&lt;br /&gt;Thomas Vander Stichele and Zaheer Merali worked on addressing &lt;a href="http://twistedmatrix.com/trac/ticket/2650"&gt; ambiguities on the AMP API documentation&lt;/a&gt; and adding support for &lt;a href="http://twistedmatrix.com/trac/ticket/2651"&gt;dates and decimals&lt;/a&gt; to AMP.&lt;br /&gt;&lt;br /&gt;Later Zaheer switched to pairing with Sebastien Merle who was working on adding &lt;a href="http://twistedmatrix.com/trac/ticket/2529"&gt;string streaming&lt;/a&gt; to AMP.  Meanwhile Thomas worked with Andoni Morales (who had been pairing with Sebastien) on &lt;a href="http://twistedmatrix.com/trac/ticket/4376"&gt;improving the idle behavior of Twisted's glib2 integration&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Esteve Fernandez worked on adding &lt;a href="http://twistedmatrix.com/trac/ticket/288"&gt;streaming upload&lt;/a&gt; support to Twisted Web's resource model.&lt;br /&gt;&lt;br /&gt;Jessica McKellar helped out remotely with reviews of fixes for &lt;a href="http://twistedmatrix.com/trac/ticket/3964"&gt;Windows child process issues&lt;/a&gt;, &lt;a href="http://twistedmatrix.com/trac/ticket/4358"&gt;Conch example bugs&lt;/a&gt;, &lt;a href="http://twistedmatrix.com/trac/ticket/4207"&gt;Windows+Python 2.7 compatibility&lt;/a&gt;, and &lt;a href="http://twistedmatrix.com/trac/ticket/4346"&gt;release-related documentation errors&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Kevin Horn also worked remotely on &lt;a href="http://twistedmatrix.com/trac/ticket/4239"&gt;some problems with the structure of our documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And I walked around and answered questions about Twisted development and made suggestions about implementation approaches to try out.  I also reviewed and merged the AMP documentation fix, and also worked on another &lt;a href="http://twistedmatrix.com/trac/ticket/4069"&gt;IMAP4 ticket&lt;/a&gt;, improving test coverage for the client's SELECT support.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-8968426469975486946?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/kpMpAJ0yhKo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/8968426469975486946/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=8968426469975486946" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/8968426469975486946?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/8968426469975486946?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/kpMpAJ0yhKo/barcelona-twisted-sprint.html" title="Barcelona Twisted Sprint" /><author><name>Jean-Paul Calderone</name><uri>http://www.blogger.com/profile/15144405957500773467</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07503581337919630126" /></author><thr:total>1</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2010/03/barcelona-twisted-sprint.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4GQ3s7eSp7ImA9WxBUFkg.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-8396472855945715640</id><published>2010-03-03T15:26:00.001-08:00</published><updated>2010-03-03T15:28:42.501-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-03T15:28:42.501-08:00</app:edited><title>Twisted 10.0.0 released</title><content type="html">On behalf of Twisted Matrix Laboratories, I am honored to announce the release of Twisted 10.0.&lt;br /&gt;&lt;br /&gt;Highlights include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Improved documentation, including "Twisted Web in 60 seconds"&lt;/li&gt;&lt;li&gt;Faster Perspective Broker applications&lt;/li&gt;&lt;li&gt;A new Windows installer that ships without zope.interface&lt;/li&gt;&lt;li&gt;Twisted no longer supports Python 2.3&lt;/li&gt;&lt;li&gt;Over one hundred closed tickets&lt;/li&gt;&lt;/ul&gt;For more information, see the &lt;a href="http://twistedmatrix.com/trac/browser/tags/releases/twisted-10.0.0/NEWS?format=raw"&gt;NEWS&lt;/a&gt; file.&lt;br /&gt;&lt;br /&gt;It's stable, backwards compatible, well tested and in every way an improvement. Download the &lt;a href="http://tmrc.mit.edu/mirror/twisted/Twisted/10.0/Twisted-10.0.0.tar.bz2"&gt;tarball&lt;/a&gt;, the &lt;a href="http://tmrc.mit.edu/mirror/twisted/Twisted/10.0/Twisted-10.0.0.win32-py2.5.msi"&gt;Windows installer for Python 2.5&lt;/a&gt; or the &lt;a href="http://tmrc.mit.edu/mirror/twisted/Twisted/10.0/Twisted-10.0.0.win32-py2.6.msi"&gt;Windows installer for Python 2.6&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Many thanks to Jean-Paul Calderone and Chris Armstrong, whose work on release automation tools and answers to numerous questions made this possible. Thanks also to the supporters of the Twisted Software Foundation and to the many contributors for this release.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-8396472855945715640?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/xXCA5CtGW3A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/8396472855945715640/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=8396472855945715640" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/8396472855945715640?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/8396472855945715640?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/xXCA5CtGW3A/twisted-1000-released.html" title="Twisted 10.0.0 released" /><author><name>jml</name><uri>http://www.blogger.com/profile/11400080716012026985</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06159200095703820658" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2010/03/twisted-1000-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMASH4_eCp7ImA9WxBbEEU.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-3020389428306687787</id><published>2010-03-02T08:04:00.000-08:00</published><updated>2010-03-08T14:14:09.040-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-08T14:14:09.040-08:00</app:edited><title>PyCon 2010 sprint report</title><content type="html">&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 11px;"&gt;Residents of the once-great city of Atlanta are only now beginning to piece their lives back together after the event that Glyph Lefkowitz described as "the best Twisted sprint ever".&lt;br /&gt;
&lt;br /&gt;
Quite apart from the unprecedented levels of wanton destruction, Twisted's PyCon 2010 sprint was also better attended than any previous sprints, which have laid waste to the outskirts of Boston, inner-city Dallas and regions of Australia.&lt;br /&gt;
&lt;br /&gt;
At its peak, there were eighteen people seated around the two tables where the sprint took place. People even joined in remotely, working with the Atlanta team through #twisted on freenode.&lt;br /&gt;
&lt;br /&gt;
Although buried deep within a secret bunker in Atlanta, the sprint still managed to attract a fair number of new contributors and Twisted users who wanted to help out.&lt;br /&gt;
&lt;br /&gt;
Attendees who made themselves known to your correspondent include:&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 11px;"&gt;
&lt;li&gt;Jonathan Lange&lt;/li&gt;
&lt;li&gt;Jean-Paul Calderone&lt;/li&gt;
&lt;li&gt;David Reid&lt;/li&gt;
&lt;li&gt;Thomas Hervé&lt;/li&gt;
&lt;li&gt;Tim Couper&lt;/li&gt;
&lt;li&gt;Pavel Pergamenshchik&lt;/li&gt;
&lt;li&gt;Maciej Fijalkowski&lt;/li&gt;
&lt;li&gt;Glyph Lefkowitz&lt;/li&gt;
&lt;li&gt;Itamar Turner-Trauring&lt;/li&gt;
&lt;li&gt;Terry Jones&lt;/li&gt;
&lt;li&gt;Wilfredo Sánchez Vega&lt;/li&gt;
&lt;li&gt;Kevin Horn&lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 11px;"&gt;Jessica McKellar, Ralph Meijer and Andrew Bennetts also participated remotely.&lt;br /&gt;
&lt;br /&gt;
Attendees all had immense fun and expressed a desire to have another sprint soon. One observed that it had been far too long since giant mecha robot warriors descended on Paris.&lt;br /&gt;
&lt;br /&gt;
Twisted prevails,&lt;br /&gt;
jml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More simply, we had a great time at the sprint and got a ridiculous amount of stuff done.&lt;br /&gt;
&lt;br /&gt;
We fixed many, many bugs, including all of the known regressions since the 9.0 release. Once we fixed the regressions, we started work on getting the first 10.0 pre-release out the door.&lt;br /&gt;
&lt;br /&gt;
The pre-release probably would not have been possible without the sprint since it allowed the new release manager ready access to Jean-Paul, who has quite a lot of knowledge stuck in his head. One result of this is a new &lt;a href="http://twistedmatrix.com/trac/wiki/ReleaseProcess"&gt;release process document&lt;/a&gt;, which is being developed alongside the actual 10.0 release.&lt;br /&gt;
&lt;br /&gt;
We also reached an in-principle agreement to aim for a release every three months. This means that although hardly any of the good work from the sprint is in the 10.0 release, you won't have to wait long for it to appear in 10.1. Hopefully. I plan write up how this will work as soon as the 10.0 release is done.&lt;br /&gt;
&lt;br /&gt;
The sprint proved to be a perfect opportunity to talk about some of the more gutly bits of Twisted, including Deferred cancellation (see &lt;a href="http://twistedmatrix.com/trac/ticket/990"&gt;#990&lt;/a&gt;) and endpoints (see &lt;a href="http://twistedmatrix.com/trac/ticket/1442"&gt;#1442&lt;/a&gt;). The former is done, and the latter has made good progress. Stay tuned.&lt;br /&gt;
&lt;br /&gt;
Thomas Hervé did a lot of work on upgrading our Trac instance, which was getting kind of old and currently crashes all of the time.&lt;br /&gt;
&lt;br /&gt;
We talked a bit about how we could make it easier for people to contribute to Twisted without compromising our high standards of quality. We put as many of the ideas that we could remember on to &lt;a href="http://twistedmatrix.com/trac/wiki/ContributionIdeas" style="color: #005488;" target="_blank"&gt;http://twistedmatrix.com/trac/&lt;wbr&gt;&lt;/wbr&gt;wiki/ContributionIdeas&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Maciej Fijalkowski was at the sprint working on getting &lt;a href="http://morepypy.blogspot.com/2010/03/hello.html"&gt;PyPy benchmarks for Twisted&lt;/a&gt; and on making PyPy work faster with Twisted. Personally, it's really exciting to see PyPy live up to its promise of a faster Python, particularly with a big codebase like Twisted.&lt;br /&gt;
&lt;br /&gt;
As I said, we fixed lots of bugs. Here's the complete list:&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 11px;"&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/4179"&gt;#4179&lt;/a&gt; - HTTP proxy hanging in Twisted 9.0&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/3056"&gt;#3056&lt;/a&gt; - twisted.spread.pb.&lt;wbr&gt;&lt;/wbr&gt;IUsernameMD5Password's docstring should say it accepts an MD5 digest of a password, not plaintext&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/3289"&gt;#3289&lt;/a&gt; - startLoggingWithObserver raises IndexError&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/4178"&gt;#4178&lt;/a&gt; - Function singleSearchStep was renamed to _singleSearchStep not everywhere&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/4192"&gt;#4192&lt;/a&gt; - Move the content from exarkun's Twisted Web in 60 Seconds series into the Twisted Web howto&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/4284"&gt;#4284&lt;/a&gt; - t.e.adbapi leaks threads&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/4282"&gt;#4282&lt;/a&gt; - _release.filePathDelta is broken&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/3718"&gt;#3718&lt;/a&gt; - twisted.internet.posixbase._&lt;wbr&gt;&lt;/wbr&gt;Waker not defined on Jython&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/4143"&gt;#4143&lt;/a&gt; - twisted.web.wsgi incorrectly unquotes QUERY_STRING&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/4255"&gt;#4255&lt;/a&gt; - BaseLogFile should provide a method to reopen logs&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/972"&gt;#972&lt;/a&gt;  - Add linux inotify support to twisted core&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/2367"&gt;#2367&lt;/a&gt; - twisted.test.test_failure.&lt;wbr&gt;&lt;/wbr&gt;FailureTestCase.testBrokenStr break #trial in debug mode&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/1083"&gt;#1083&lt;/a&gt; - gtk2reactor thread initialization confuses python-2.3&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/3462"&gt;#3462&lt;/a&gt; - FTP server: upload should support async close&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/990"&gt;#990&lt;/a&gt;  - Deferred cancellation&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/733"&gt;#733&lt;/a&gt;  - twisted's SIGCHLD handler breaks popen.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/2376"&gt;#2376&lt;/a&gt; - release-twisted should generate guides with links to API docs&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/4272"&gt;#4272&lt;/a&gt; - flavors.py still talks about getObjectAt&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/4172"&gt;#4172&lt;/a&gt; - UDP crashes python.exe when using IOCPReactor&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/3925"&gt;#3925&lt;/a&gt; - test_addresses fails with Glib2 and Gtk2 reactors&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/4255"&gt;#4255&lt;/a&gt; - BaseLogFile should provide a method to reopen logs&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/4293"&gt;#4293&lt;/a&gt; - Update links in testing documentation&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/4311"&gt;#4311&lt;/a&gt; - XMPP Stanza Error 'remote-server-timeout' yield no type and code&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twistedmatrix.com/trac/ticket/3811"&gt;#3811&lt;/a&gt; - Allow aborting HTTP client connections in the _newclient API&lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 11px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 11px;"&gt;&lt;br /&gt;
We also worked on:&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 11px;"&gt;Getting rid of 3k warnings and generally doing 2to3&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 11px;"&gt;Event support for iocpreactor&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 11px;"&gt;Making Deferreds more iterative (see &lt;a href="http://twistedmatrix.com/trac/ticket/411"&gt;#411&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 11px;"&gt;Twisted Web features and bug fixes&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 11px;"&gt;Fixing obscure Windows/gtk2 compatibility issues&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 11px;"&gt;Thank you very much to PyCon US, the Python Software Foundation and the many sponsors of the Twisted Software Foundation for their hard-work and support in making this all possible.&lt;br /&gt;
&lt;br /&gt;
Thanks also to the attendees for making it such a blast.&lt;br /&gt;
&lt;br /&gt;
If you want to encourage more of this sort of behaviour, then please donate to the &lt;a href="http://twistedmatrix.com/trac/wiki/TwistedSoftwareFoundation#HowtoDonate"&gt;Twisted Software Foundation&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
jml&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-3020389428306687787?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/i2Ee7VczfhQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/3020389428306687787/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=3020389428306687787" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/3020389428306687787?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/3020389428306687787?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/i2Ee7VczfhQ/pycon-2010-sprint-report.html" title="PyCon 2010 sprint report" /><author><name>jml</name><uri>http://www.blogger.com/profile/11400080716012026985</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06159200095703820658" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2010/03/pycon-2010-sprint-report.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQESHs7fip7ImA9WxBTGEw.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-2674411159848466268</id><published>2009-12-14T00:05:00.000-08:00</published><updated>2009-12-14T09:05:09.506-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-14T09:05:09.506-08:00</app:edited><title>Sponsored Development, December 2009</title><content type="html">Hello all,&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;The tickets I reviewed this time around (italics for tickets now resolved):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;#3007 - Subsystem's connectionLost method executed twice in certain situation&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#3226 - twisted.python.util.initgroups (and thus spawnProcess) potentially does tons of unnecessary IO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#3296 - Account for ISUPPORT information in irc_MODE when parsing mode strings&lt;/span&gt;&lt;br /&gt;#3931 - t.p.amp.AmpBox.serialize will _not_ return a string if any value is unicode&lt;br /&gt;#4009 - twisted.python.modules.PythonPath docstring typo&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#4029 - Twisted Web's wsgi.input isn't sufficiently file-like in all cases&lt;/span&gt;&lt;br /&gt;#4065 - Replace 'callable(foo)' with 'hasattr(foo_ "__call__")'&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;And the tickets I worked on (often with the help of others):&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;#733 - twisted's SIGCHLD handler breaks popen&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#970 - twisted.names.root.Resolver eats filedescriptors&lt;/span&gt;&lt;br /&gt;#1784 - disttrial --hosts=kunai_takkun_muon twisted&lt;br /&gt;#2078 - Twisted shouldn't start processes until the reactor is running&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#2884 - Tool to update / generate NEWS file&lt;/span&gt;&lt;br /&gt;#3886 - Fixing the Socks4 proxy to be Socksv4a compliant&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#3922 - twisted.protocols.amp.BinaryBoxProtocol.connectionLost chokes on reason = main.CONNECTION_DONE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#3932 - HTTPAuthSessionWrapper incorrectly returns a 500 if the wrapped resource doesn't implement the requested method&lt;/span&gt;&lt;br /&gt;#3956 - Add arraysize option to runQuery in adbapi&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#4019 - t.web.wsgi.WSGIResource - WSGI application error handling&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#4029 - Twisted Web's wsgi.input isn't sufficiently file-like in all cases&lt;/span&gt;&lt;br /&gt;#4031 - twisted.mail.smtp client doesn't really implement SASL LOGIN&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#4049 - Error IMAP4Client.fetchSpecific an HTML body part&lt;/span&gt;&lt;br /&gt;#4053 - Replace "x.has_key(y)" with "y in x"&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#4063 - Ween trial's --dry-run away from the deprecated TestCase.visitor code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#4066 - `reduce` for Python 3.x&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#4075 - Remove deprecated IReactorUDP.connectUDP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#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&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#4115 - lore -olint's `check_texturl_matches_href` and `check_a_py_listing` methods invoke getAttribute wrong&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#4116 - Add a parameterized AMP argument type which can serialize and unserialize 0 or more of a specified type&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#4131 - `twisted.web.client.Agent` does not add a Host header if `None` (the default) is passed for the `headers` argument to `request`&lt;/span&gt;&lt;br /&gt;#4154 - Skip all release automation related tests on platforms which are not Linux&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;You can find more details about these tickets in the Twisted issue tracker.  To look up a ticket, visit http://twistedmatrix.com/trac/ticket/ticketnumber.  For example, &lt;a href="http://twistedmatrix.com/trac/ticket/4063"&gt;http://twistedmatrix.com/trac/ticket/4063&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;This should signal the beginning of more regular sponsored development.  Look forward to seeing another one of these reports soon. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-2674411159848466268?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/RuUpPSO1Mcs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/2674411159848466268/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=2674411159848466268" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/2674411159848466268?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/2674411159848466268?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/RuUpPSO1Mcs/sponsored-development-december-2009.html" title="Sponsored Development, December 2009" /><author><name>Jean-Paul Calderone</name><uri>http://www.blogger.com/profile/15144405957500773467</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07503581337919630126" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2009/12/sponsored-development-december-2009.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8HRnw5fCp7ImA9WxNbF0o.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-2871935408627165080</id><published>2009-11-20T19:03:00.001-08:00</published><updated>2009-11-20T19:07:17.224-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-20T19:07:17.224-08:00</app:edited><title>Twisted 9 is in the works, first pre-release is available</title><content type="html">Hi all! I've done an initial pre-release of Twisted 9. I've made available a &lt;a href="http://twistedmatrix.com/users/radix/twisted-prereleases/9.0.0pre1/"&gt;set of tarballs&lt;/a&gt; (The one called &lt;a href="http://twistedmatrix.com/users/radix/twisted-prereleases/9.0.0pre1/Twisted-9.0.0pre1.tar.bz2"&gt;Twisted-9.0.0pre1.tar.bz2&lt;/a&gt; is the main release) and the &lt;a href="http://twistedmatrix.com/users/radix/twisted-prereleases/9.0.0pre1/NEWS.txt"&gt;release notes&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Please try out this prerelease and tell us about any regressions or other release-related problems you find. If all goes well, we want to hear about that too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-2871935408627165080?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/jX3V3iglhNw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/2871935408627165080/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=2871935408627165080" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/2871935408627165080?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/2871935408627165080?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/jX3V3iglhNw/twisted-9-is-in-works-first-pre-release.html" title="Twisted 9 is in the works, first pre-release is available" /><author><name>Christopher Armstrong</name><uri>http://www.blogger.com/profile/11041638059246049826</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12167247497581436023" /></author><thr:total>1</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2009/11/twisted-9-is-in-works-first-pre-release.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcEQXo9eyp7ImA9WxNUFUs.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-2211140806515556011</id><published>2009-11-06T19:20:00.000-08:00</published><updated>2009-11-06T19:20:00.463-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-06T19:20:00.463-08:00</app:edited><title>New OS X build slave</title><content type="html">As some of you may recall, Apple lent Twisted an &lt;a href="http://jcalderone.livejournal.com/26173.html"&gt;Xserve G5&lt;/a&gt; a few years back.  This was invaluable in maintaining Twisted support for OS X.  A few weeks ago we unfortunately lost the ability to host this machine.  Fortunately,&lt;a href="http://blog.dreid.org/"&gt; David Reid&lt;/a&gt; came through and very generously donated a&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jcalderone/4081753734/" title="img_0972 by jcalderone, on Flickr"&gt; &lt;img src="http://farm4.static.flickr.com/3511/4081753734_8efd8d5c2b_m.jpg" alt="img_0972" height="180" width="240" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;which is now set up and &lt;a href="http://buildbot.twistedmatrix.com/builders/osx10.6-py2.6-select"&gt;running the Twisted test suite &lt;span style="font-style: italic; font-weight: bold;"&gt;continuously&lt;/span&gt;&lt;/a&gt;.  Thanks, David!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-2211140806515556011?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/KcHOHyfGFlA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/2211140806515556011/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=2211140806515556011" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/2211140806515556011?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/2211140806515556011?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/KcHOHyfGFlA/new-os-x-build-slave.html" title="New OS X build slave" /><author><name>Jean-Paul Calderone</name><uri>http://www.blogger.com/profile/15144405957500773467</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07503581337919630126" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2009/11/new-os-x-build-slave.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcDQ3s8fCp7ImA9WxJQEkk.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-6419905095458017529</id><published>2009-05-25T02:44:00.000-07:00</published><updated>2009-05-25T03:41:12.574-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-25T03:41:12.574-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="twisted" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="canonical" /><title>Canonical Men of Twistery</title><content type="html">&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="padding-left: 10px; float: right;"&gt;&lt;a href="http://people.ubuntu.com/%7Emwh/canonical-men-of-twistery.jpg" align="top"&gt;&lt;img src="http://people.ubuntu.com/%7Eduncan/images/canonical-men-of-twistery-small.png" /&gt;&lt;/a&gt;&lt;/div&gt;The title of this quick little post goes to the excellent name mwh gave the linked photo :-) Taken at a dinner during AllHands in a gorgeous area outside of Barcelona, this pic shows the collection of Twisted developers that Canonical has hired (so far!).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Top row, left to right&lt;/span&gt;: Andrew Bennetts (spiv), Thomas Herve (therve), Chris Armstrong (radix), Michael Hudson (mwh), Jamu Kakar (jkakar).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Bottom row, left to right&lt;/span&gt;: Nicola Larosa (tekNico), Duncan McGreggor (oubiwann), Jonathan Lange (jml).&lt;br /&gt;&lt;br /&gt;Pretty freakin' cool :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-6419905095458017529?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/ATosV0127DU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/6419905095458017529/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=6419905095458017529" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/6419905095458017529?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/6419905095458017529?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/ATosV0127DU/canonical-men-of-twistery.html" title="Canonical Men of Twistery" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>oubiwann@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="11761565810112908517" /></author><thr:total>2</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2009/05/canonical-men-of-twistery.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YMQ3kzfip7ImA9WxJQEEs.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-4314406771795587944</id><published>2009-05-23T01:59:00.000-07:00</published><updated>2009-05-23T01:59:42.786-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-23T01:59:42.786-07:00</app:edited><title>Sponsorship In 2009</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;It's that time of year again; the time when you all have the &lt;i&gt;excellent opportunity&lt;/i&gt; to settle your karmic debt and sponsor the Twisted project.&lt;br/&gt;&lt;br/&gt;Actually, that time is every day of the year.  Right now is just when we have arbitrarily decided to make you aware of this opportunity, so that we're not annoying you all year-round.  Sometime soon we'll be taking down the current list of sponsors for 2008 — hopefully, to make room for a new list of sponsors for 2009.  But without your help, that list will be empty!&lt;br/&gt;&lt;br/&gt;Thanks to our founding sponsors, Twisted has had a great year.  If you've been reading this news feed, you know that we've been able to review, respond to,  and close tons of tickets this year.&lt;br/&gt;&lt;br/&gt;As Jean-Paul Calderone previously wrote, &lt;a href='http://labs.twistedmatrix.com/2009/01/january-sponsored-twisted-development.html'&gt;this is the first year we've had a year-over-year decrease in the number of open tickets&lt;/a&gt;; and that's despite an &lt;i&gt;increase&lt;/i&gt; in the number of filed tickets.  We believe that Twisted is setting a great example for how other open source projects can effectively use sponsorship to fund development.&lt;br/&gt;&lt;br/&gt;Many open source projects are perpetually crunched for volunteer labor.  Twisted is no different in this respect — we could always use more help from the community.  However, we are lucky to have something that most projects don't: the ability to convert dollars directly into maintenance that benefits the project.&lt;br/&gt;&lt;br/&gt;When you contribute money to the Twisted project, you are &lt;i&gt;directly&lt;/i&gt; contributing to get bugs fixed, features implemented, and tickets reviewed.   Last year we told the same story, but this year we have an excellent track record.  I invite you to read the history of our sponsored development — just scroll down and have a look.  I'll wait.&lt;br/&gt;&lt;br/&gt;... Done?&lt;br/&gt;&lt;br/&gt;If you prefer visual representations of our success instead, consider these graphs.  Here's a graph of all tickets reviewed this year, by the handle of the person who reviewed them:&lt;br/&gt;&lt;img alt='' src='http://lh5.ggpht.com/_X8hqcsy8KQM/She6r6bGa0I/AAAAAAAAAF4/5AAxlLkeRCM/%5BUNSET%5D.png?imgmax=800'/&gt;&lt;br/&gt;&lt;br/&gt;Here's the same breakdown of all tickets that were closed this year:&lt;br/&gt;&lt;img alt='' src='http://lh4.ggpht.com/_X8hqcsy8KQM/She6skX2F1I/AAAAAAAAAF8/3mKuAGlDJIY/%5BUNSET%5D.png?imgmax=800'/&gt;&lt;br/&gt;In case you don't already know: "exarkun" is the handle for Jean-Paul Calderone.  By his own calculation, at least 75% of his work this year has been sponsored development.&lt;br/&gt;&lt;br/&gt;This isn't to say that Twisted is being supported entirely by sponsorship: as you can see from the huge number of tickets that exarkun has reviewed, a substantial proportion of development has been coming from the community, but sponsorship has allowed us to be more responsive to the community and integrate contributions much faster.  (Developers may not review their own tickets, so there's no overlap between the code JP has been writing and the tickets he's been reviewing.)&lt;br/&gt;&lt;br/&gt;This year of sponsorship has been great for the project.  But, we're coming to the end of our first year of funding, and we need your help to keep going.&lt;br/&gt;&lt;br/&gt;Every little bit helps, from small, one-time individual donations to monthly subscriptions to corporate sponsorships.  This year, we need even more help from individuals, as some of our corporate sponsors have been impacted by the current economic climate and may not be able to contribute at the same level this year.&lt;br/&gt;&lt;br/&gt;To summarize, there are a few things you can do to help the Twisted project:&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Contribute code.  Any contribution is welcome, but the best would be to attack an existing ticket in the tracker, especially one that has stalled on its way through review.&lt;/li&gt;&lt;li&gt;Donate money directly.  You'll find donation buttons on the front page of &lt;a href='http://twistedmatrix.com/trac/'&gt;twistedmatrix.com&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Donate money from your organization.  Doing so gets you a voice on our sponsors-only mailing list, and can help you to set priorities for the coming year of development.  You also get your logo on twistedmatrix.com, our gratitude, and last but not least, more Twisted development in the coming year!&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Help us in our discussions with larger organizations.  If you're a software developer using Twisted in a big company, we need &lt;i&gt;your&lt;/i&gt; help to convince your organization that they should be contributing.  Even if not, the board of the Twisted project is small and strapped for time - we could use some help just finding the right person to talk to, and making sure that all of their questions are answered promptly.  (If you'd like to help with this effort, please contact me directly.)&lt;br/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class='zemanta-pixie'&gt;&lt;img class='zemanta-pixie-img' src='http://img.zemanta.com/pixy.gif?x-id=be28b38b-8907-8264-b011-5190c54cf673'/&gt;&lt;br/&gt;Thanks for your interest in Twisted.&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-4314406771795587944?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/w-k30lbX8dY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/4314406771795587944/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=4314406771795587944" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/4314406771795587944?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/4314406771795587944?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/w-k30lbX8dY/sponsorship-in-2009.html" title="Sponsorship In 2009" /><author><name>glyph</name><uri>http://www.blogger.com/profile/07021175796928101086</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04514150230258984130" /></author><thr:total>1</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2009/04/sponsorship-in-2009.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQNQnw7eyp7ImA9WxVVEEw.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-7520116342169802359</id><published>2009-03-02T07:55:00.000-08:00</published><updated>2009-03-02T08:46:33.203-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-02T08:46:33.203-08:00</app:edited><title>February Sponsored Twisted Development</title><content type="html">Another month, another round of Twisted development. February saw progress on a miscellany of bug fixes, as well as further work on the new SIP implementation. List of tickets I worked on (bold tickets are now closed):&lt;br /&gt;&lt;br /&gt;#2036 - trial runs tests from .pyc files even if there is no .py file&lt;br /&gt;#2194 - small bug in SIP Via header generation&lt;br /&gt;&lt;b&gt;#3634 - restat in render in static.File raise Exception if file doesn't exists&lt;/b&gt;&lt;br /&gt;#3639 - suppress deprecation warnings emitted by twisted.test.test_sip&lt;br /&gt;#3643 - MemCacheProtocol does not return an error if it is used after disconnecting&lt;br /&gt;#3648 - twisted.cred.credentials.UsernameHashedPassword doesn't hash password strings when checkPassword&lt;br /&gt;&lt;b&gt;#3654 - unlink of unix socket in connectionLost may cause twistd daemons to ignore SIGTERM&lt;/b&gt;&lt;br /&gt;#3584 - SIP transport and transaction layer&lt;br /&gt;&lt;b&gt;#3660 - IRCClient reports ":None:None" to CTCP version request&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Work on #3654 unearthed a more general problem where twistd fails to exit when a service encounters an exception during shutdown. So hopefully there'll be less need to use &lt;tt&gt;kill -9&lt;/tt&gt; during development :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rfc-ref.org/RFC-TEXTS/3261/contents.html"&gt;RFC 3261&lt;/a&gt; is the longest RFC for a network protocol the IETF has ever produced. The SIP transport/transaction branch only provides the bottom two layers of a full SIP stack, but introduces 1700 new lines of code. Special thanks to Chris Armstrong and Jean-Paul Calderone for their &lt;a href="http://twistedmatrix.com/trac/ticket/3584#comment:17"&gt;amazingly detailed review&lt;/a&gt;. I managed to get halfway through the issues they raised, and expect to finish it up next time.&lt;br /&gt;&lt;br /&gt;Once again, thanks to the &lt;a href="http://conservancy.softwarefreedom.org/"&gt;Software Freedom Conservancy&lt;/a&gt;, all of the &lt;a href="http://twistedmatrix.com/trac/wiki/TSF/FoundingSponsors"&gt;Twisted Sponsors&lt;/a&gt;, and all the other developers who contribute to Twisted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-7520116342169802359?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/GY4QPHgPkzM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/7520116342169802359/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=7520116342169802359" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/7520116342169802359?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/7520116342169802359?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/GY4QPHgPkzM/february-sponsored-twisted-development.html" title="February Sponsored Twisted Development" /><author><name>Allen Short</name><uri>http://www.blogger.com/profile/02476178041186364808</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="15720162227492062297" /></author><thr:total>1</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2009/03/february-sponsored-twisted-development.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EMQH49eip7ImA9WxVQFEo.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-963719721140460374</id><published>2009-02-01T00:08:00.001-08:00</published><updated>2009-02-01T00:08:01.062-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-01T00:08:01.062-08:00</app:edited><title>January Sprint Report</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Today, we had a last-minute unofficial Twisted sprint for January, at the Divmod office in Porter Square, Cambridge, Massachusetts.&lt;br/&gt;&lt;br/&gt;Thanks to everyone who contributed.&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Glyph Lefkowitz (that's me) reviewed 4 tickets, shortening the review queue by half.&lt;/li&gt;&lt;li&gt;Jean-Paul Calderone addressed review feedback for some of our old favorite tickets, &lt;a href='http://twistedmatrix.com/trac/ticket/733'&gt;compatibility with &lt;code&gt;os.popen&lt;/code&gt;&lt;/a&gt; and &lt;a href='http://twistedmatrix.com/trac/ticket/3560'&gt;lore's handling of whitespace&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Christopher Armstrong created &lt;a href='http://twistedmatrix.com/trac/ticket/3637'&gt;a tool to generate the official API documentation&lt;/a&gt;, as well as reviewing Jean-Paul's lore work.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Itamar Shtull-Trauring helped with various things, including —&lt;/li&gt;&lt;li&gt;David Sturgis &lt;a href='http://twistedmatrix.com/trac/ticket/2385'&gt;worked to fix twisted.words's IRC compatibility with Pidgin&lt;/a&gt;, among other IRC clients.&lt;/li&gt;&lt;/ul&gt;Thanks also to other contributors today not at the sprint: 'atsuoi' who contributed &lt;a href='http://twistedmatrix.com/trac/ticket/3638'&gt;a patch for an SMTP issue&lt;/a&gt;, and Paul Swartz, who (&lt;a href='http://twistedmatrix.com/trac/log/branches/userauth-2682-7'&gt;it looks like&lt;/a&gt;) spent some time working on &lt;a href='http://twistedmatrix.com/trac/ticket/2682'&gt;testing user authentication in Conch&lt;/a&gt;.  (Commit those changes, Paul!)&lt;br/&gt;&lt;br/&gt;We are tentatively planning to hold our next sprint on Sunday, February 22.  If you're in the Cambridge, Massachusetts area, please stop by!&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-963719721140460374?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/dlI2gnwM4MY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/963719721140460374/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=963719721140460374" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/963719721140460374?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/963719721140460374?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/dlI2gnwM4MY/january-sprint-report.html" title="January Sprint Report" /><author><name>glyph</name><uri>http://www.blogger.com/profile/07021175796928101086</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04514150230258984130" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2009/02/january-sprint-report.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUHQX09fCp7ImA9WxVQEEw.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-4625106150053701532</id><published>2009-01-26T15:18:00.000-08:00</published><updated>2009-01-26T16:47:10.364-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-26T16:47:10.364-08:00</app:edited><title>More January Sponsored Twisted Development</title><content type="html">First, a list of tickets I worked on:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; #2036 - trial runs tests from .pyc files even if there is no .py file&lt;br /&gt;&lt;li&gt; #3575 - Common implementation of RFC 2617 digest authentication (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;&lt;li&gt; #3582 - Improve SIP URI parsing/formatting&lt;br /&gt;&lt;li&gt; #3584 - SIP transport and transaction layer&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;It is the last of these on which I spent the bulk of the time, implementing the lower layers of SIP message handling as described in RFC 3261. As far as I know, this is the first implementation of this protocol in Python that has thorough unit test coverage! While reviewing the code from Sine, Divmod's SIP implementation, and comparing to the spec I discovered some significant misunderstandings that I had the chance to fix here. This code lays the foundation for both user agent code (like VoIP clients or SIMPLE instant messaging) and proxies.&lt;br /&gt;&lt;br /&gt;Thanks to the &lt;a href="http://conservancy.softwarefreedom.org"&gt;SFC&lt;/a&gt; and all of the &lt;a href="http://twistedmatrix.com/trac/wiki/TSF/FoundingSponsors"&gt;sponsors&lt;/a&gt; who made this possible, as well as to all the other Twisted developers who helped out by writing or reviewing code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-4625106150053701532?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/QDjQB4f3x2w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/4625106150053701532/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=4625106150053701532" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/4625106150053701532?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/4625106150053701532?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/QDjQB4f3x2w/more-january-sponsored-twisted.html" title="&lt;i&gt;More&lt;/i&gt; January Sponsored Twisted Development" /><author><name>Allen Short</name><uri>http://www.blogger.com/profile/02476178041186364808</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="15720162227492062297" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2009/01/more-january-sponsored-twisted.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQGRHg7cCp7ImA9WxVRFE0.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-6768074928800843034</id><published>2009-01-19T09:13:00.000-08:00</published><updated>2009-01-19T15:05:25.608-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-19T15:05:25.608-08:00</app:edited><title>January Sponsored Twisted Development</title><content type="html">On Friday I finished the first two weeks of sponsored Twisted development for 2009.  This week, the number of open tickets in the Twisted issue tracker hit 1040 - going down.  We hit 1040 on the upside in November of 2007.  Thanks in very large part of the sponsors who made so much of my time available for Twisted development in 2008, we closed more tickets than we opened last year for the first time (&lt;a href="http://bigasterisk.com/"&gt;Drew P&lt;/a&gt; quipped that Twisted will be bug-free and feature-complete in 2636 - better than never ;).  On average, we closed one ticket every 14 hours last year - &lt;i&gt;all year&lt;/i&gt;.  This trend is clearly visible in the graph included in the weekly summary of issue tracker activity.  The green line shows total tickets filed, the red line shows total open tickets.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_znn42E7gLcw/SXUD5V_tr7I/AAAAAAAAAAM/oyWYodbJ7gQ/s1600-h/index.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_znn42E7gLcw/SXUD5V_tr7I/AAAAAAAAAAM/oyWYodbJ7gQ/s320/index.png" alt="" id="BLOGGER_PHOTO_ID_5293141220735692722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;During this round of development, there was the usual smattering of web-related work:&lt;br /&gt;&lt;br /&gt;#446 - Twisted Web accepts any HTTP method as if it was GET&lt;br /&gt;#886 - Add an HTTP 1.1 client protocol implementation to twisted.web&lt;br /&gt;#1176 - A t.web glossary is needed (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;#1522 - Remove woven from next release of twisted.web (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;#2446 - Python 2.4 has poor round-trip behaviour for xmlrpclib.DateTime; Twisted should work around&lt;br /&gt;#2030 - Deprecate twisted.web.trp&lt;br /&gt;#3035 - deprecate Resource subclasses in twisted.web.error, add equivalents in twisted.web.resource&lt;br /&gt;#3416 - rename `twisted.web2.iweb.IOldRequest` to `twisted.web.iweb.IRequest` (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;#3457 - Session expiry check frequency should be based on sessionTimeout&lt;br /&gt;#3600 - test twisted.web.domhelpers against xml.dom.minidom (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;#3601 - crash in twisted.web.http triggered by a blackberry web browser (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;#3605 - Factor "identity" transfer encoding support out of HTTPChannel.rawDataReceived into an object like the chunked transfer encoding object (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;#3610 - Give twisted.web.http_headers.Headers a nice repr (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;&lt;br /&gt;Of course #886 shows up in the list yet again.  At this point the protocol implementation is essentially done.  The code has been reviewed and most of the feedback dealt with.  The only reason it isn't closed yet is that we want to provide more than just an HTTP/1.1 client protocol implementation.  We want to provide an easy-to-use, high-level web client.  Before I call #886 finished, I want to implement a few of those high-level APIs.  So #886 is going to remain open for a little while longer, but I expect it to be closed very soon now.&lt;br /&gt;&lt;br /&gt;Another highlight on this list is #1522 - the removal of Woven from Twisted.  That's right, it's gone, guys.  I really hope that after almost three years of being deprecated and almost six years of there being better alternatives around no one still has code using this.  If so, you're out of luck for the next Twisted release.  Perhaps you should take a look at &lt;a href="http://divmod.org/trac/wiki/DivmodNevow"&gt;Nevow&lt;/a&gt;. :)&lt;br /&gt;&lt;br /&gt;Aside from web tickets, there were some more FTP improvements:&lt;br /&gt;&lt;br /&gt;#3593 - passivePortRange in ftp.py not working (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;#3596 - Active mode makes ftp.py crash (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;&lt;br /&gt;Some improvements which make writing unit tests with Twisted and for Twisted-based code easier:&lt;br /&gt;&lt;br /&gt;#3598 - TestCase.flushWarnings shouldn't use source files to implement its "offendingFunctions" feature (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;#3609 - Add IConsumer and IProducer support to StringTransport to facilitate testing producers and consumers (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;&lt;br /&gt;And all kinds of other assorted fixes and enhancements:&lt;br /&gt;&lt;br /&gt;#733 - twisted's SIGCHLD handler breaks popen&lt;br /&gt;#1785 - reactor.run should raise an error when called while the reactor is running (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;#3560 - remove usage of microdom from twisted.lore&lt;br /&gt;#3576 - add high-level, cross-platform close-on-exit togglers to twisted.internet.fdesc (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;#3591 - ThreadedResolver--and twisted.internet.thread--assumes that the reactor is the installed reactor&lt;br /&gt;#3595 - the interaction of the fireOnOneErrback and consumeErrors parameters to DeferredList is not well documented&lt;br /&gt;#3602 - Improve factoring of various reactor implementations of "internal" FD tracking&lt;br /&gt;#3606 - incorrect link in application howto (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;&lt;br /&gt;Changes to the internal factoring of reactors (#3602) and additions to fdesc (#3576) were both made in support of #733 - a very old ticket for a behavior which often trips people up.  Glyph did the initial work on these improvements and Itamar and I came back and polished them a bit last week.  With one of these closed and the other almost closed, Twisted is getting pretty close to not getting in the way of popen (and more generally, not causing syscalls to start to fail with EINTR).  This is a generally nice thing, but it's taken a long time because it requires access to POSIX APIs Python doesn't expose.&lt;br /&gt;&lt;br /&gt;Further work on #3560 has gotten Lore almost to the point where it's using minidom instead of microdom.  Glyph raised a point in his review of the code which threw one further wrench into the workings, though.  Currently, Lore input documents are implicitly XHTML.  This means a Lore input document may use named character entities without declaring one of the XHTML DTDs.  However, in order to continue to support this with minidom, it's necessary to reach way into expat and use a couple very confusing features.  Itamar and I finally worked out how to do this, but if one is using xml.sax (which we are) then it involves using private attributes.  Not nice.  Tune in next month to learn how this turns out. ;)&lt;br /&gt;&lt;br /&gt;Of course, I also review some tickets over the past two weeks:&lt;br /&gt;&lt;br /&gt;#532 - Big jump from finger18.py to finger19.py in tutorial&lt;br /&gt;#918 - If program has &gt; 1024 fds, the select() used in t.i.process can fail (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;#1009 - Document defgen&lt;br /&gt;#2110 - finger tutorial uses unclear python idioms (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;#2682 - twisted.conch.ssh.userauth is poorly tested&lt;br /&gt;#3245 - __slots__ in Deferred class&lt;br /&gt;#3498 - conch connection-sharing should be disabled by default, at least until it works a little&lt;br /&gt;#3575 - Common implementation of RFC 2617 digest authentication (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;#3584 - SIP transaction layer&lt;br /&gt;#3613 - a streaming producer doesn't have to be resumed when a buffer is empty (&lt;b&gt;closed&lt;/b&gt;)&lt;br /&gt;&lt;br /&gt;Several documentation tickets there, as well as some good SIP stuff (more of Allen's work).  The digest authentication ticket (#3575) was a nice one. Twisted has something like three different implementations of digest authentication in it, each for a different protocol with slightly different requirements.  #3575 is the beginning of the consolidation of that code, a pretty important task.&lt;br /&gt;&lt;br /&gt;Meanwhile, Allen has been working on the SIP code in Twisted in parallel with my development.  A report of his work will show up here shortly.&lt;br /&gt;&lt;br /&gt;Thanks to the &lt;a href="http://conservancy.softwarefreedom.org/"&gt;SFC&lt;/a&gt; and all of the &lt;a href="http://twistedmatrix.com/trac/wiki/TSF/FoundingSponsors"&gt;sponsors&lt;/a&gt; who made this possible, as well as to all the other Twisted developers who helped out by writing or reviewing code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-6768074928800843034?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/OBdMC68uUyQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/6768074928800843034/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=6768074928800843034" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/6768074928800843034?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/6768074928800843034?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/OBdMC68uUyQ/january-sponsored-twisted-development.html" title="January Sponsored Twisted Development" /><author><name>Jean-Paul Calderone</name><uri>http://www.blogger.com/profile/17618512204583118375</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04711372862663071517" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_znn42E7gLcw/SXUD5V_tr7I/AAAAAAAAAAM/oyWYodbJ7gQ/s72-c/index.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2009/01/january-sponsored-twisted-development.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ECQHc7fyp7ImA9WxVTFkg.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-8045500326614104797</id><published>2008-12-30T06:45:00.000-08:00</published><updated>2008-12-30T07:41:01.907-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-30T07:41:01.907-08:00</app:edited><title>Summary of December Sponsored Twisted Development</title><content type="html">With a lot of help from Allen Short, two more weeks of sponsored Twisted development have just been completed.  During this round, I continued to work on the new HTTP client and spent some time trying to resolve some long-standing issues around Twisted's support for starting and controlling child processes.  Meanwhile, Allen developed a &lt;a href="http://twistedmatrix.com/trac/wiki/SIPPlan"&gt;plan&lt;/a&gt; for integrating the SIP code, maintained by Divmod, Inc. outside of Twisted for several years, into Twisted and the existing SIP support in Twisted.&lt;br /&gt;&lt;br /&gt;The SIP-related work that Allen did encompassed these tickets:&lt;br /&gt;&lt;br /&gt;#2194 - small bug in SIP Via header generation&lt;br /&gt;#3575 - Common implementation of RFC 2617 digest authentication&lt;br /&gt;#3582 - Improve SIP URI parsing/formatting&lt;br /&gt;#3583 - Include SIP message-parsing changes from &lt;a href="http://divmod.org/trac/wiki/DivmodSine"&gt;Sine&lt;/a&gt;&lt;br /&gt;#3584 - SIP transport layer and transaction layer&lt;br /&gt;&lt;br /&gt;These are the process tickets that I worked on:&lt;br /&gt;&lt;br /&gt;#733 - twisted's SIGCHLD handler breaks popen&lt;br /&gt;#1997 - perhaps wakeUp could be slightly simpler (&lt;span style="font-weight: bold;"&gt;closed&lt;/span&gt;)&lt;br /&gt;#2967 - Reaping child processes has superlinear complexity on POSIX&lt;br /&gt;#3571 - intermittent spawnProcess failure in test_process on Linux (&lt;span style="font-weight: bold;"&gt;closed&lt;/span&gt;)&lt;br /&gt;#3576 - add high-level, cross-platform close-on-exit togglers to t.i.fdesc&lt;br /&gt;&lt;br /&gt;A lot of this work consisted of getting some old code which Glyph had previously worked on but never completed updated and brought closer to being ready for a real code review.  The summary of #1997 is a bit misleading - while the change did simplify the reactor's "wake up" mechanism, it also removed a race condition, fixing a bug which could cause certain events to fall into a limbo where they could only ever be processed after another event arrived.&lt;br /&gt;&lt;br /&gt;Aside from process related tickets and the HTTP client, I worked on a few other tickets as well:&lt;br /&gt;&lt;br /&gt;#2808 - AMP should raise MissingArgument (or other) if a callRemote is called with wrong arguments (&lt;span style="font-weight: bold;"&gt;closed&lt;/span&gt;)&lt;br /&gt;#3246 - remove all mentions of plugins.tml from the documentation (&lt;span style="font-weight: bold;"&gt;closed&lt;/span&gt;)&lt;br /&gt;#3562 - Setup Python 3.0 buildslave(s) (&lt;span style="font-weight: bold;"&gt;closed&lt;/span&gt;)&lt;br /&gt;#3568 - ERROR from conch test when pycrypto is not installed&lt;br /&gt;#3569 - Twisted Web WSGI container sometimes emits too many (or duplicate) headers (&lt;span style="font-weight: bold;"&gt;closed&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;The Python 3.0 buildslave will probably garner the most interest of the bunch.  The resolution of this ticket does &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; mean that Twisted supports Python 3.0 now.  It just means that we've added a &lt;a href="http://buildbot.twistedmatrix.com/waterfall?builder=ubuntu64-py3.0-select"&gt;column&lt;/a&gt; to our buildbot (continuous integration system).  We can now tell at any given time that Twisted does not support Python 3.0. ;)  But seriously, with this slave set up, we can accept contributions which move Twisted towards Python 3.0 compatibility, but I don't plan to spend any time doing such development myself in the near future.  There's a ton of other more pressing issues, so I'll leave Python 3.0 work to people who think they'll benefit from it.&lt;br /&gt;&lt;br /&gt;As for the new HTTP client, this round of development moves it inexorably towards completion.  Itamar Shtull-Trauring and I spent several days improving its error handling, simplifying some of the more hideous parts of the implementation, and dealing with various corner cases (and HTTP 1.1 sure has a lot of them).  The &lt;a href="http://twistedmatrix.com/trac/browser/branches/expressive-http-client-886?rev=25721"&gt;development branch&lt;/a&gt; also includes a &lt;span style="font-style: italic;"&gt;sketch &lt;/span&gt;(&lt;span style="font-weight: bold;"&gt;only&lt;/span&gt; a sketch) of the &lt;a href="http://twistedmatrix.com/trac/browser/branches/expressive-http-client-886/high-level-http-client.py?rev=25721"&gt;higher-level API&lt;/a&gt; we're planning to provide on top of the low-level protocol implementation (the sketch is currently undocumented and a bit obtuse, so it may not make sense without me or Itamar looking over your shoulder) and an &lt;a href="http://twistedmatrix.com/trac/browser/branches/expressive-http-client-886/doc/web/examples/httpclient.py?rev=25721"&gt;example&lt;/a&gt; which uses the APIs provided by the low-level protocol to implement a simple web client (something along the lines of wget or curl, but obviously much, much, much more rudamentary).&lt;br /&gt;&lt;br /&gt;That's it for now.  It'll be 2009 when I post the next one of these.  2008 has been a great year for Twisted development, and I know that things are just going to get better. :)  Thanks again to the &lt;a href="http://conservancy.softwarefreedom.org/"&gt;Software Freedom Conservancy&lt;/a&gt;, all of the &lt;a href="http://twistedmatrix.com/trac/wiki/TSF/FoundingSponsors"&gt;Twisted Sponsors&lt;/a&gt;, and all the other developers who contribute to Twisted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-8045500326614104797?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/yy721tGZyDo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/8045500326614104797/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=8045500326614104797" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/8045500326614104797?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/8045500326614104797?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/yy721tGZyDo/summary-of-december-sponsored-twisted.html" title="Summary of December Sponsored Twisted Development" /><author><name>Jean-Paul Calderone</name><uri>http://www.blogger.com/profile/17618512204583118375</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04711372862663071517" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2008/12/summary-of-december-sponsored-twisted.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEFSX4yeip7ImA9WxRbE0w.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-8010767148337979600</id><published>2008-12-03T05:44:00.000-08:00</published><updated>2008-12-03T07:36:58.092-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-03T07:36:58.092-08:00</app:edited><title>Summary of November Sponsored Twisted Development</title><content type="html">I've just completed another round of sponsored Twisted development (the sixth so far).  This period sees a lot of documentation improvements, as well as various bug fixes and continued work on a new HTTP client for Twisted Web (#886).&lt;br /&gt;&lt;br /&gt;These are the documentation issues which were resolved:&lt;br /&gt;&lt;br /&gt;#2281 - Annotations for Twisted Finger Tutorial&lt;br /&gt;#3548 - twisted.conch.client.knownhosts.PlainEntry misdocuments its "_hostnames" attribute.&lt;br /&gt;#3455 - CONNECTION_LOST not an Integer...&lt;br /&gt;#3537 - Conch's public key authentication process is confusing.&lt;br /&gt;#3490 - FTPClient errors should provide ftp errorcode&lt;br /&gt;&lt;br /&gt;There were some improvements to Twisted Web:&lt;br /&gt;&lt;br /&gt;#1878 - twisted.web.monitor traceback_ AttributeError: class IChangeNotified has no attribute '__class__'&lt;br /&gt;#2402 - client.py crashes on URL's that would be no problem for most browsers&lt;br /&gt;#3192 - HTTPClientFactory sets followRedirect on the HTTPPageGetter class&lt;br /&gt;#3469 - Exception is rendered when NotFound is more appropriate.&lt;br /&gt;&lt;br /&gt;A problem with Conch's SFTP server's reporting of modification times was fixed (and then a problem with the unit tests for the fix was fixed):&lt;br /&gt;&lt;br /&gt;#3503 - Wrong date format delivered by twisted.conch.ls.lsLine&lt;br /&gt;#3551 - TZ=Pacific/Auckland python2.4 ./bin/trial twisted.conch.test.test_cftp.ListingTests fails&lt;br /&gt;&lt;br /&gt;With #3551, I was once again reminded that working with timezones is extremely challenging.  This time, I found that the range of local renderings of any particular UTC timestamp is greater than 24 hours, so you cannot rely on &lt;span style="font-weight: bold;"&gt;any&lt;/span&gt; particular timestamp falling on a particular day in an arbitrary timezone.  So like other unit tests in Twisted, the unit tests for &lt;span style="font-style: italic;"&gt;lsLine&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;explicitly set the timezone when they want to make assertions which depend on it, then reset it to its original value.  Unfortunately, this means they can't run on Windows, since Windows apparently lacks APIs for doing this.  I also rediscovered that &lt;span style="font-style: italic;"&gt;time.tzset()&lt;/span&gt; is a no-op, at least on Linux (but the unit tests call it anyway, in case Solaris or HP-UX or some other POSIX implementation requires it).&lt;br /&gt;&lt;br /&gt;An important issue with Twisted's Jabber support was fixed as well (#3463).  This one prevented Twisted's Jabber client from successfully negotiating TLS when connected to Google Talk (and possibly other Java-based Jabber servers).  This problem was ultimately caused by a bug in the TLS support on Google Talk which caused TLS negotiation to fail if the client included a session ticket (RFC 5077) section in the handshake.  This is allowed and servers which do not support session tickets should ignore the section, but for some reason it causes problems with Google Talk.  OpenSSL (on which Twisted's SSL support is based) 0.9.9 enables session tickets and the 0.9.8 package distributed with some platforms (eg Ubuntu 8.10) includes a backport of this feature.  So Twisted's Jabber client cannot communicate with Google Talk if one of those versions of OpenSSL is installed.&lt;br /&gt;&lt;br /&gt;A couple issues related to Python 2.6 support were fixed:&lt;br /&gt;&lt;br /&gt;#2763 - md5 and sha module will be deprecated in python 2.6&lt;br /&gt;#3545 - Support Python 2.6 in the Windows build system.&lt;br /&gt;&lt;br /&gt;A bug in Twisted Mail's IMAP4 client which prevented the &lt;span style="font-style: italic;"&gt;unseen&lt;/span&gt; part of a server's response to a &lt;span style="font-style: italic;"&gt;select&lt;/span&gt; or &lt;span style="font-style: italic;"&gt;examine &lt;/span&gt;command from being made available to applications was fixed (#3550).&lt;br /&gt;&lt;br /&gt;And there were several other assorted fixes:&lt;br /&gt;&lt;br /&gt;#3521 - Documentation for `processExited()` conflicts with the implementation&lt;br /&gt;#3315 - t.p.reflect.safe_repr includes the wrong traceback and misformats the return value&lt;br /&gt;#3541 - twisted.internet.abstract.FileDescriptor.loseConnection drops reason (will be reported as clean shutdown)&lt;br /&gt;#3544 - bin/admin/change-versions should update the main README file&lt;br /&gt;&lt;br /&gt;I also spent some time working on converting Twisted Lore from using microdom, Twisted's XML parser and DOM implementation (circa 2002), to using minidom, the XML parser and DOM implementation in the Python standard library.  For a long time, microdom was better than any of the alternatives, but it's seen very little maintenance in the past several years and there are some problems with Lore (eg #414) which are caused by behavior of microdom that it would be difficult to change.&lt;br /&gt;&lt;br /&gt;Unfortunately, switching to minidom brings a new set of problems.  It's still probably worthwhile, but it seems like it's harder to use than it should be.  Some of the issues I've run into so far (and I'm not done yet):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;minidom's constructors are less convenient than microdom's constructors.  For example, the Text constructor doesn't accept a string to use as the text node's value.  Instead, you have to instantiate Text and then set an attribute.  This expands code which should have been one line into three lines.  And to make things worse, a Text instance with no data set raises an exception from the __repr__ method.&lt;/li&gt;&lt;li&gt;The parse error exceptions raised by expat are less informative than the parse error exceptions raised by microdom.  For example, if a document contains mismatched tags, microdom reports the name and location of both the opening and closing tags.  minidom will report only the location of the closing tag.  It's easy enough to find out the name of the closing tag by finding that location in the input document, but finding the offending start tag means parsing the document in your head.  For any non-trivial document this is ridiculous.  Fortunately, by switching to sax and providing custom error and content handlers, most of the information can be recovered.  This information is always useful though, and it would be better if minidom provided it by default.&lt;/li&gt;&lt;li&gt;Once you switch to xml.sax, you have to remember to disable its validation features or it will try to retrieve DTDs from the internet every time you parse something.  This is bad, bad default behavior.&lt;/li&gt;&lt;/ul&gt;Some of these issues may turn into Python bug reports once I've made more progress on converting Lore.  A much bigger difficulty with the conversion than the problems minidom has is the fact that Lore is largely pre-UQDS code.  Some of it has tests, but they're mostly whole-system tests which compare gigantic xhtml strings and are subject to extremely obscure failures.  And most of it doesn't have any tests at all.&lt;br /&gt;&lt;br /&gt;Switching away from microdom should be worth the effort though.  minidom is a bit faster and Lore will generate better looking output once the switch is done.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Itamar points out I didn't separate tickets into groups for those I reviewed and those I did development on myself this time.  So let me point out that of the above tickets, many were developed by others and reviewed by me.  The Twisted development process is highly collaborative.  I couldn't accomplish &lt;span style="font-weight: bold;"&gt;anything&lt;/span&gt; without the help of all the other great Twisted developers who volunteer to contribute to Twisted in their free time.  If you want to find out which are which, head over to the &lt;a href="http://twistedmatrix.com/trac/report/"&gt;Twisted issue tracker&lt;/a&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; &lt;span style="font-style: italic;"&gt;where you can look up the development(/authorship/etc) history of any ticket.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That's all for now.  Thanks again to the &lt;a href="http://conservancy.softwarefreedom.org/"&gt;Software Freedom Conservancy&lt;/a&gt;, all of the &lt;a href="http://twistedmatrix.com/trac/wiki/TSF/FoundingSponsors"&gt;Twisted Sponsors&lt;/a&gt;, and all the other developers who contribute to Twisted (hi &lt;a href="https://launchpad.net/%7Emwhudson"&gt;Michael&lt;/a&gt;!).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-8010767148337979600?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/Y5RZbAXv5uU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/8010767148337979600/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=8010767148337979600" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/8010767148337979600?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/8010767148337979600?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/Y5RZbAXv5uU/summary-of-november-sponsored-twisted.html" title="Summary of November Sponsored Twisted Development" /><author><name>Jean-Paul Calderone</name><uri>http://www.blogger.com/profile/17618512204583118375</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04711372862663071517" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2008/12/summary-of-november-sponsored-twisted.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUBRHw4fip7ImA9WxRWF0g.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-3948351566475104212</id><published>2008-11-03T15:31:00.000-08:00</published><updated>2008-11-03T15:50:55.236-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-03T15:50:55.236-08:00</app:edited><title>Summary of October Sponsored Twisted Development</title><content type="html">Hello again,&lt;br /&gt;&lt;br /&gt;I've just spent another two weeks on sponsored Twisted development.  This round sees 25 tickets resolved.  Considering the fact that two tickets in particular took up a lot of development time, I'm pretty happy with this progress.  I did a lot of reviews for other people this time around.  Here are some of the more interesting things developed by other people to which I gave the thumbs up:&lt;br /&gt;&lt;br /&gt;#2026 - Edit the twisted.internet docstring to make contents clearer&lt;br /&gt;#2902 - bad flag value in twisted.conch.ssh.filetransfer&lt;br /&gt;#3335 - FTPClient should support renaming files&lt;br /&gt;#3491 - FTPClient should support deleting files&lt;br /&gt;#3500 - Add directory creation method to FTPClient&lt;br /&gt;&lt;br /&gt;(The other tickets I reviewed which weren't quite as as interesting were: #532 #745 #1853 #2281 #2375 #2682 #2748 #3197 #3216 #3315 #3381 #3393 #3439 #3464 #3466 #3471 #3482 #3486 #3504 #3505 #3507)&lt;br /&gt;&lt;br /&gt;And here are some of the more interesting ones I worked on myself (bold tickets are now closed):&lt;br /&gt;&lt;br /&gt;#886 - Rewrite twisted.web.client.getPage to support streaming of result data and returning headers etc&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#2346 - Header generation not conforming to RFC822 and RFC2046&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#2605 - stdlib unittest change breaks a trial test&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#3298 - twisted.internet.defer.FirstError masks errors when logged&lt;/span&gt;&lt;br /&gt;#3329 - HTTP's #(...) syntax allows null contents&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#3477 - BinaryBoxProtocol.makeConnection calls startReceivingBoxes too early&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#3478 - AMP should enforce MAX_KEY_LENGTH in the protocol parser&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#3487 - Add TestCase.flushWarnings&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(The other slightly less exciting tickets I worked were: #3169 #3197 #3216 #3515 #3519)&lt;br /&gt;&lt;br /&gt;#3487 and #886 took up a lot of my time this round.  With #3487 resolved, the way is clear for the next Twisted release to run well on Python 2.6 (ie, there are no more known issues).  Once I got that out of the way, I moved back to web issues.  #886 is going to represent a big step towards having a good HTTP client API in Twisted.  Anyone who has tried to use twisted.web.client for anything non-trivial knows how much work is needed in this area. :)&lt;br /&gt;&lt;br /&gt;As usual, this work is made possible by the &lt;a href="http://conservancy.softwarefreedom.org/"&gt;SFC&lt;/a&gt; and all of the &lt;a href="http://twistedmatrix.com/trac/wiki/TSF/FoundingSponsors"&gt;sponsors&lt;/a&gt; who made this possible, as well as to all the other Twisted developers who helped out by writing or reviewing code!&lt;br /&gt;&lt;br /&gt;That's all until next time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-3948351566475104212?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/RycszMyjsfs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/3948351566475104212/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=3948351566475104212" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/3948351566475104212?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/3948351566475104212?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/RycszMyjsfs/summary-of-october-sponsored-twisted.html" title="Summary of October Sponsored Twisted Development" /><author><name>Jean-Paul Calderone</name><uri>http://www.blogger.com/profile/17618512204583118375</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04711372862663071517" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2008/11/summary-of-october-sponsored-twisted.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYARnw8cSp7ImA9WxRRFEg.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-4847200269357384462</id><published>2008-09-26T12:28:00.000-07:00</published><updated>2008-09-26T12:42:27.279-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-26T12:42:27.279-07:00</app:edited><title>Summary of September Sponsored Twisted Development</title><content type="html">Another round (the fourth) of sponsored Twisted development has just wrapped up.&lt;br /&gt;&lt;br /&gt;I had a lot of excellent help again from Thomas Hervé and  Thijs Triemstra.  Thomas is a great reviewer and Thijs has been making steady progress on resolving lots of documentation tickets.&lt;br /&gt;&lt;br /&gt;Here are the tickets I spent time developing:&lt;br /&gt;&lt;br /&gt;#1068 - UNIX Port creation has race condition in permission setting code&lt;br /&gt;#1382 - twisted.web.client.HTTPClientFactory sends Host header (and others) more than once&lt;br /&gt;#1903 - Twisted doesn't reset timeout when getting POST data&lt;br /&gt;#2542 - twisted.web.microdom.Node.isEqualToNode does no actual comparison&lt;br /&gt;#2683 - twisted/web/http.py has self._header instead of self.__header&lt;br /&gt;#2878 - Intermittent unclean errors from twisted.test.test_ftp.FTPServerPasvDataConnectionTestCase.testTwoDirLIST on OS X&lt;br /&gt;#2947 - intermittent twisted.test.test_pb.NSPTestCase.test_NSP failure on OS X&lt;br /&gt;#2974 - twisted.vfs.test.test_vfs.OSVFSTest.setUp does not close the files it opens&lt;br /&gt;#2976 - twisted.mail.smtp.xtext_encode and xtext_decode take the wrong number of arguments&lt;br /&gt;#3133 - Whois function for the ircclient class&lt;br /&gt;#3211 - twisted.python.log.showwarning doesn't take the new line argument added in Python 2.6&lt;br /&gt;#3222 - Intermittent failure of twisted.test.test_twistd.AppProfilingTestCase.test_profileSaveStats on Windows&lt;br /&gt;#3223 - twisted.trial.unittest.TestCase.assertWarns always fails when the C warnings module_ new in Python trunk_ is in use&lt;br /&gt;#3239 - Intermittent failure of twisted.test.test_iutils.UtilsTestCase.testOutputWithErrorIgnored on Windows&lt;br /&gt;#3266 - Provide tools for managing new deprecation policy&lt;br /&gt;#3402 - Intermittent failure of twisted.test.test_tcp.LocalRemoteAddressTestCase.test_hostAddress on OS X&lt;br /&gt;#3404 - twisted.test.test_process.ProcessTestCase.testManyProcesses fails on WinXP&lt;br /&gt;#3416 - rename `twisted.web2.iweb.IOldRequest` to `twisted.web.iweb.IRequest`&lt;br /&gt;#3424 - Intermittent failure of twisted.names.test.test_names.ServerDNSTestCase.testZoneTransfer on OS X&lt;br /&gt;#3426 - twisted/internet/test/test_process.py tests which might fail while waiting for an event should use runReactor instead of reactor.run&lt;br /&gt;&lt;br /&gt;As you can see, work improving Twisted Web continues here.  There's also been some long-needed fixes to tests in the suite which fail intermittently on various platforms.  With more of these problems resolved, it gets easier and easier to determine if new proposed changes introduce any regressions.&lt;br /&gt;&lt;br /&gt;Of course, I reviewed a lot of tickets over the last few weeks as well.  Here they are:&lt;br /&gt;&lt;br /&gt;#532 - Big jump from finger18.py to finger19.py in tutorial.&lt;br /&gt;#1124 - getHost and getPeer not needed for IProcessTransport&lt;br /&gt;#1157 - web.http.HTTPClient does not support chunked transfer-encoding&lt;br /&gt;#1262 - Document Twisted copyright policy&lt;br /&gt;#1328 - People keep asking about _trial_temp&lt;br /&gt;#1852 - Replace uses of @ivar in interfaces with z.i.Attribute&lt;br /&gt;#1853 - Fix/eliminate @cvar in Interfaces.&lt;br /&gt;#2026 - Edit the twisted.internet docstring to make contents clearer&lt;br /&gt;#2500 - Add @since to the coding standard&lt;br /&gt;#2514 - Documentation bug in the list of possible &lt;span/&gt; classes&lt;br /&gt;#2555 - Documentation update: deferred results in PB&lt;br /&gt;#2909 - Document XXX Comment Policy&lt;br /&gt;#3045 - Coding standard should forbid the use of "foo %s" % notATuple&lt;br /&gt;#3197 - IProcessTransport.pid is incompletely documented&lt;br /&gt;#3236 - Remove the FAQ from doc/core/howto_ since it is a duplicate of the FAQ wiki page&lt;br /&gt;#3254 - twisted.python.deprecate does the wrong thing for methods&lt;br /&gt;#3315 - t.p.reflect.safe_repr includes the wrong traceback and misformats the return value&lt;br /&gt;#3382 - coding-standard.xhtml mislinks to twisted.python.compat&lt;br /&gt;#3414 - Coding standard refers to old tools&lt;br /&gt;#3415 - Get rid of X{} references in docstrings&lt;br /&gt;#3422 - Remove acceptance tests in coding standard&lt;br /&gt;#3423 - Get rid of references to old admin tools&lt;br /&gt;#3435 - XmlStream should be convenient to use in a server context where there should be one authenticator per connection&lt;br /&gt;#3446 - Infinite loop/memory-usage in irc.split()&lt;br /&gt;&lt;br /&gt;These tickets represent a lot of good work by other Twisted developers (and you can see there are a lot of documentation tickets here, almost all the work of Thijs!).&lt;br /&gt;&lt;br /&gt;I also spent a bit of time cleaning up our issue tracker.  When you've been keeping track of bugs and feature requests for more than five years, it's hard to avoid having a certain amount of invalid tickets pile up.  It's a bit of a drag going through the issue tracker to try to find these, but it's well worth while (and I can't expect &lt;span style="font-weight: bold;"&gt;everything&lt;/span&gt; to be fun ;).&lt;br /&gt;&lt;br /&gt;That's it for this time.  I'll be back with another report in about a month.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-4847200269357384462?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/zOzFg2jaERI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/4847200269357384462/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=4847200269357384462" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/4847200269357384462?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/4847200269357384462?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/zOzFg2jaERI/summary-of-september-sponsored-twisted.html" title="Summary of September Sponsored Twisted Development" /><author><name>Jean-Paul Calderone</name><uri>http://www.blogger.com/profile/17618512204583118375</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04711372862663071517" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2008/09/summary-of-september-sponsored-twisted.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUGQ308eSp7ImA9WxdUGUg.&quot;"><id>tag:blogger.com,1999:blog-1267458971896358542.post-3033419541046810688</id><published>2008-08-05T06:54:00.000-07:00</published><updated>2008-08-05T08:30:22.371-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-05T08:30:22.371-07:00</app:edited><title>Summary of July/August TSF Sponsored Twisted Development</title><content type="html">I've just completed the third two-week period of TSF sponsored Twisted development.&lt;br /&gt;&lt;br /&gt;Tickets I worked on during this period:&lt;br /&gt;&lt;br /&gt;#686 - [TEST] startTLS is broken if there's already data in the outgoing buffer.&lt;br /&gt;#966 - [PATCH] Add --umask option to twistd&lt;br /&gt;#1200 - twisted.test.test_internet calls reactor.iterate()&lt;br /&gt;#1493 - static File web module doesn't support byte ranges&lt;br /&gt;#2276 - Changes to TwistedNames to make it support NAPTR records&lt;br /&gt;#2338 - trial should handle concurrent usage in the same directory gracefully&lt;br /&gt;#2753 - twisted.web WSGI support&lt;br /&gt;#2790 - UDP Transport write() raises socket.error EWOULDBLOCK&lt;br /&gt;#2845 - twisted.internet.thread._putResultInDeferred should be public&lt;br /&gt;#2931 - FilePath.setContent writes and renames but does not sync&lt;br /&gt;#3342 - twisted.names dns-spoofing vulnerability&lt;br /&gt;#3347 - twisted.names dns-spoofing vulnerability (birthday paradox)&lt;br /&gt;#3367 - twisted.python.lockfile.FilesystemLock.lock fails with EEXIST&lt;br /&gt;&lt;br /&gt;Tickets I reviewed during this period:&lt;br /&gt;&lt;br /&gt;#637 - Odd filenaming in tutorial/intro.xhtml&lt;br /&gt;#638 - Allow overriding twistd's logging options&lt;br /&gt;#689 - twistd man page needs a section on signals&lt;br /&gt;#1246 - reactor.callWhenRunning is not in the Using Processes document&lt;br /&gt;#1253 - Create index.xhtml files for non-core doc trees&lt;br /&gt;#1490 - Allow twistd to "run" packages_ e.g. 'twistd run mypackage --port 8080'&lt;br /&gt;#1821 - Turn deferredgenerator wiki page into howto&lt;br /&gt;#1888 - Review man pages&lt;br /&gt;#1971 - Links in SEE ALSO section of doc/lore/man/lore.1 are bogus&lt;br /&gt;#2208 - Standardize on the Python shebang line&lt;br /&gt;#2375 - these objects' docstrings are not proper epytext:&lt;br /&gt;#2438 - Get rid of references to maintainer email addresses from code&lt;br /&gt;#2607 - conch.checks.SSHPublicKeyDatabase calls os.seteuid/os.setegid even if it's not necessary&lt;br /&gt;#3244 - runInteraction exceptions are swallowed if rollback fails&lt;br /&gt;#3254 - twisted.python.deprecate does the wrong thing for methods&lt;br /&gt;#3285 - Add ISUPPORT implementation for irc.py&lt;br /&gt;#3332 - SSHAgent implementation_ unit tests&lt;br /&gt;#3355 - t.application.app.AppProfiler handles options oddly&lt;br /&gt;#3365 - a few more IRCClient docstrings&lt;br /&gt;#3366 - add IRCClient.back()&lt;br /&gt;#3377 - words.protocol - irc.py assumes nickchange to be successful before server ack&lt;br /&gt;&lt;br /&gt;Allen Short also helped out with a few reviews this time.  Thijs Triemstra, a new Twisted contributor, has also been very active lately working though documentation tickets and making great headway.&lt;br /&gt;&lt;br /&gt;Twisted's open ticket count also fell below 1100 this week.  For the last three months, for the first time ever, we've been able to consistently resolve more tickets than have been filed.&lt;br /&gt;&lt;br /&gt;Thanks to the SFC (&lt;&lt;a href="http://conservancy.softwarefreedom.org/"&gt;http://conservancy.softwarefreedom.org/&lt;/a&gt;&gt;) and all of the sponsors  (&lt;&lt;a href="http://twistedmatrix.com/trac/wiki/TSF/FoundingSponsors"&gt;http://twistedmatrix.com/trac/wiki/TSF/FoundingSponsors&lt;/a&gt;&gt;) who made this possible, as well as to all the other Twisted developers who helped out by writing or reviewing code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1267458971896358542-3033419541046810688?l=labs.twistedmatrix.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TwistedMatrixLaboratories/~4/x4-y8SJ_exU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://labs.twistedmatrix.com/feeds/3033419541046810688/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1267458971896358542&amp;postID=3033419541046810688" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/3033419541046810688?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1267458971896358542/posts/default/3033419541046810688?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TwistedMatrixLaboratories/~3/x4-y8SJ_exU/summary-of-julyaugust-tsf-sponsored.html" title="Summary of July/August TSF Sponsored Twisted Development" /><author><name>Jean-Paul Calderone</name><uri>http://www.blogger.com/profile/17618512204583118375</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04711372862663071517" /></author><thr:total>0</thr:total><feedburner:origLink>http://labs.twistedmatrix.com/2008/08/summary-of-julyaugust-tsf-sponsored.html</feedburner:origLink></entry></feed>
