Saturday, June 19, 2010

Twisted 10.1.0pre1 released – please test

From the dank and grey depths of a London summer, a thin, reedy voice wanders across the waves of the Internet, saying that it's jolly well pleased to announce the first 10.1.0 pre-release.

We would very much appreciate it if you could download the tarballs, test them on your systems, and file tickets as appropriate.


Highlights include:

  • Deferreds now support cancellation
  • A new "endpoint" interface which can abstractly describe stream transport endpoints such as TCP and SSL
  • inotify support for Linux, which allows monitoring of file system events.
  • AMP supports transferring timestamps

For more information, see the NEWS file.

If there is only positive feedback from the pre-release, we aim to do the final release some time later this month.

Thursday, May 27, 2010

Powering the Silver Screen

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.

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.

To read more check out the great Success Story from Dave Peticolas from Lucasfilm: Twisted at Lucasfilm

Have your own success story using Twisted? Let us know! Just send an e-mail to success@twistedmatrix.com

Thursday, May 20, 2010

Twisted Git (and Bzr) Mirror

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!

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 a git mirror to complement the existing bzr mirror.

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.

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.

Sunday, April 25, 2010

Twisted test suite code coverage

As anyone who's contributed to Twisted knows, we currently have a very high standard for code changes and additions. For a long time, we've relied mainly on the standard library trace module. The trace module is quite serviceable, but recently some other options have come along which are much better. In particular, coverage.py 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.

So, as a first step, I've set up a coverage.py builder on Twisted's BuildBot. 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 builds directory along with a lot of other stuff. For example, here's the latest report 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.

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.

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.

Oh, and since coverage.py only reports on Python coverage, I've also set up a gcov/lcov builder which uploads its coverage reports for execution of the C code in Twisted to a similar location.

Tuesday, March 30, 2010

New, New, New!

New Success Story

We've added a great success story for PowerCard, a loyalty rewards program for local restaurants. One of the terrific things about the PowerCard story is the use of Twisted for both 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.

Read the full success story here.

New Library Listing

Looking to use Twisted with new technologies like RabbitMQ (txAMQP) and Redis (txRedis)? Browse the updated libraries listing. We bet you'll find what you're looking for.

New Twisted Ambassador

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!

Jason J. W. Williams is Twisted's new ambassador to 3rd-party projects of all kinds.Primarily this responsibility involves keeping the "Success Stories" and "Projects Using Twisted" pages up to date, and occasionally writing small updates (like this one) for the news feed.

Please contact success at twisted matrix dot com 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!

Monday, March 22, 2010

Barcelona Twisted Sprint

Yesterday's Twisted sprint at the Flumotion office was quite a success. There were six of us there, and many first time Twisted contributors.

Jan UrbaƄski worked on fixing a couple IMAP4 client search bugs. 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.

Thomas Vander Stichele and Zaheer Merali worked on addressing ambiguities on the AMP API documentation and adding support for dates and decimals to AMP.

Later Zaheer switched to pairing with Sebastien Merle who was working on adding string streaming to AMP. Meanwhile Thomas worked with Andoni Morales (who had been pairing with Sebastien) on improving the idle behavior of Twisted's glib2 integration.

Esteve Fernandez worked on adding streaming upload support to Twisted Web's resource model.

Jessica McKellar helped out remotely with reviews of fixes for Windows child process issues, Conch example bugs, Windows+Python 2.7 compatibility, and release-related documentation errors.

Kevin Horn also worked remotely on some problems with the structure of our documentation.

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 IMAP4 ticket, improving test coverage for the client's SELECT support.

Wednesday, March 3, 2010

Twisted 10.0.0 released

On behalf of Twisted Matrix Laboratories, I am honored to announce the release of Twisted 10.0.

Highlights include:
  • Improved documentation, including "Twisted Web in 60 seconds"
  • Faster Perspective Broker applications
  • A new Windows installer that ships without zope.interface
  • Twisted no longer supports Python 2.3
  • Over one hundred closed tickets
For more information, see the NEWS file.

It's stable, backwards compatible, well tested and in every way an improvement. Download the tarball, the Windows installer for Python 2.5 or the Windows installer for Python 2.6.

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.