Wednesday, December 26, 2012

Twisted 12.3.0 released

On behalf of Twisted Matrix Laboratories, I am pleased to announce, in extremis, the release of Twisted 12.3.
161 tickets are closed by this release, with the following highlights:
  • Support for local parallel testing in trial
  • A new "react" function to easily run a single asynchronous function in a script with the reactor.
  • Partial support for Python 3.3.
Twisted 12.3 requires zope.interface 3.6.0 or later, so you may need to upgrade.  Also, on Windows, Python 2.7 or later is now required.

For more information, see the NEWS file here: NEWS.txt
Download it now from: Twisted-12.3.0.tar.bz2 or Twisted-12.3.0.win32-py2.7.msi
Thanks to the supporters of Twisted via the Software Freedom Conservancy and to the many contributors for this release.

Thursday, December 20, 2012

Second pre-release of Twisted 12.3.0

As it turns out, making a 4th release in 2012 wasn't going to be easy! Thanks to the testing of David Reid, we found and fixed an issue with pip which was making installation difficult when zope.interface was missing. And we got another fix with the help of Eric Mangold, fixing the compilation on OpenBSD.

The tarballs of the second pre-release can be found here: http://twistedmatrix.com/~therve/12.3.0pre2/

Thank you for testing it again!

Friday, December 14, 2012

Seeking a Motivated Maintainer for Twisted

The Twisted project, via the Software Freedom Conservancy, is seeking to recruit a full-time paid maintainer. We've got a fellowship proposal published on the wiki, but here are some highlights:
  • You will be working on an open source project and your contributions will be consumed by companies such as Google, Canonical, Lucasfilm/Disney, Rackspace, and Justin.TV to name a few.
  • We want to hire a full-time maintainer who will assist with the continued growth of the Twisted project.
  • Thanks to the meticulous work of your predecessors, we have a clear view of what your average week would look like in terms of tasks and responsibilities (more below).
Desired qualifications in a maintainer:
  • The ability to review code for suitability, stability, and clarity; to point out meritable work, and provide actionable feedback on how to improve the code when necessary. 
  • The ability to implement features in the Twisted library. 
  • A positive presence in Twisted's online community on IRC and the mailing list. 
  • Have familiarity with the infrastructure of the Twisted project (including trac and buildbot). 
  • Work to provide education or outreach on Twisted in other forums such as workshops, conferences, and user groups. 
We will strongly consider someone with experience maintaining other open source projects, but with just a little Twisted experience, as long as such an applicant is passionate about and committed to becoming a Twisted expert.

During an average work week, the maintainer will distribute their work along these lines:
  • Code review (55%) Review code, apply patches, and set and enforce standards for code quality. Improve documentation and code test coverage. 
  • Mailing list and IRC participation (10%) Encourage and participate in discussions on Twisted's mailing lists and IRC channels. 
  • Bug report triage (5%) Supervise Twisted's ticket workflow to ensure that bug tickets are addressed and closed. 
  • New feature development (30%) Serve as architect for the development and implementation of new features. 
Furthermore, the Maintainer will provide a forthnightly written report of their progress to the Conservancy and the Twisted community.

Information on whom to contact in the event of your interest is provided at the bottom of the page.

We look forward to hearing from you!


First pre-release of Twisted 12.3.0

Yes, you're reading well. For the first time ever (since 2008), we're actually pushing not 2, not 3, but 4 releases in a calendar year! Just to be able to use the fancy 12.3 version number.

But, apart from this nice label, this release also closes 158 tickets, among them:

  • Support for local parallel testing in trial.
  • A new "react" function to easily run a single asynchronous function in a script with the reactor.
  • Partial support for Python 3.3.

Note that only Python 2.7 is supported on Windows now. We also require zope.interface 3.6.0 or newer.

You can find the tarballs of the pre-release here: http://twistedmatrix.com/~therve/12.3.0pre1/

For more information, see the NEWS file.

Please download the tarballs and test them!

Sunday, September 2, 2012

Quick Fix: Upgrading Zope Interface so you can work on Twisted trunk post-12.2 release

Immediately after the recent 12.2 release, Twisted has upgraded its required version of Zope Interface.  Some platforms ship with a system-installed version of Zope Interface that is slightly too old for this change.  You may have noticed an unhelpful error message if you happened to svn up before learning about this change.

Upgrading system-installed Python packages without doing harm can be a challenge, so in this post we'll provide simple instructions for users who:
  • have a system-installed version of Zope Interface
  • are on a Unix-y platform, like Linux, BSD, or OS X (if you're on Windows, just upgrade to the latest on your system installation)
  • are not using a tool like virtualenv or Combinator to manage Zope Interface (if you are, you should already know what to do!)
  • don't want to upgrade anything system-wide, so as to avoid disturbing other users or software on their system
  • have easy_install already available in their environment.  (While Pip is generally better, it is pre-installed less often, and Pip doesn't seem to deal as well as easy_install with the case of parallel installation of user and system installed dependencies; it assumes you are using virtualenv for that. Update: as of the most recent release,  pip deals just fine with parallel user/system installation; so, if you've got pip installed, "pip install zope.interface==4.0.2" – possibly with a --user option if that's appropriate to your environment – will work just fine.  Thanks, Pip maintainers!)
This set of attributes describes many Linux and OS X developers who are likely to encounter this version skew issue, so off we go.

Since easy_install can't be coerced to do the right thing by command-line options, you'll need to give it a configuration file that it can read.  The easiest way to do this is to create a temporary directory, cd into it, and create a file called setup.cfg.  For Linux and BSD, setup.cfg looks like this:
[install]
prefix=~/.local
For OS X, the file looks like this:
[install]
prefix=~/.local
install_lib=~/Library/Python/$py_version_short/lib/python/site-packages
Once you've created that file, just  easy_install --upgrade zope.interface from that directory and you should be ready to start developing with Twisted again!  All the older versions of Twisted that I've tried still work with the newest Zope Interface so this shouldn't disturb your ability to test your code against older versions of Twisted as well, if you're managing it with something like Combinator or virtualenv.


Twisted 12.2.0 Released

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

Highlights for this release include:

To be able to work on Python3 support, Python 2.5 is no longer supported.
  • twisted.mail.imap4 now serves BODYSTRUCTURE responses which provide more information and conform to the IMAP4 RFC more closely.
  • twisted.conch now supports commercial SSH implementations which don't comply with the IETF standard.
  • twisted.internet.endpoints now provides several new endpoints, including aTCP client endpoint that resolves hostnames to IPv6 host addresses.
  • IReactorSocket.adoptStreamConnection, implemented by some reactors, allows adding an existing established connection to the reactor.
Starting with the release after 12.2, Twisted will begin requiring Zope Interface version 3.6 or greater (as part of Python 3 support).

This is the last Twisted release supporting Python 2.6 on Windows.

For more information, see the NEWS file here:

Friday, July 20, 2012

July sprints report


Twisted had its first cross-coast sprint last Saturday! Ying Li and Rackspace organized a Twisted tutorial by project founder Glyph in San Francisco on Friday, which was followed on Saturday by sprints in San Francisco and Boston.
The Boston sprint was made possible by a grant from the Python Software Foundation Sprints Committee. A big thank you to the PSF for their support.

Sprint report for Boston

JP Calderone

Cynthia Andre

Allister MacLeod

David Sturgis

Itamar Turner-Trauring

David Wang

  • Worked on a Twisted web server for an HTML5/JavaScript application

Jessica McKellar

Sprint report for San Francisco

Alex Gaynor

David Reid

Corbin Simpson

Glyph

Ralph Meijer

  • Worked on #3456: srvconnector fails for xmpp-client service on OS X
  • Discussed the intersection of Twisted Cred and Twisted Words with Glyph, laying out some architectural principles for development of things like a generalized SASL layer and proper use of the 'mind' parameter within the XMPP server within Twisted.

Andrew Bennetts

Ying Li

Remote sprinters

We had a number of remote sprinters from around the world, including:

Friday, June 29, 2012

July Twisted Tutorial and Sprint in San Francisco

There will be a Twisted tutorial/learning session in San Francisco on Friday, July 13th, at 7pm. Glyph will be giving the tutorial, and several core developers will be on hand to help.

There will be a Twisted sprint the next day, Saturday July 14th, from 10am to 9pm (or later, if folks want to stay later!) - come whenever and for however long you like. Hack on Twisted or a Twisted-related project, learn more about how to use Twisted, or just come hang out with us!

Food and drink will be provided at both events.

Both events are hosted at Rackspace, which is located at 620 Folsom St, Suite 100, San Francisco 94107. (between 2nd St and Howard, which itself is between 2nd and 3rd).

Please RSVP at our meetup site so we know how much food to get!

Annoucing Twisted 12.1

On behalf of Twisted Matrix Laboratories, I am pleased to announce the release of Twisted 12.1.

107 tickets are closed by this release, with the following highlights:
  • The revival of the kqueue reactor for BSD platforms.
  • epoll is now the default reactor under Linux after a fix to handle files on stdin/stdout.
  • New reactors supporting GTK3 and GObject-Introspection.
  • Several enhancements regarding file descriptors passing: systemd support for servers, ability to send and receive file descriptors for IReactorUNIX and an AMP argument using that feature.
  • Support for IPv6 literals in connectTCP.
  • Persistent connections support for the new HTTP client.
This is the last Twisted release supporting Python 2.5. For more information, see the NEWS file here:

http://twistedmatrix.com/Releases/Twisted/12.1/NEWS.txt

Download it now from:

http://pypi.python.org/packages/source/T/Twisted/Twisted-12.1.0.tar.bz2 or

http://pypi.python.org/packages/2.5/T/Twisted/Twisted-12.1.0.win32-py2.5.msi or
http://pypi.python.org/packages/2.6/T/Twisted/Twisted-12.1.0.win32-py2.6.msi or
http://pypi.python.org/packages/2.7/T/Twisted/Twisted-12.1.0.win32-py2.7.msi


Thanks to the supporters of Twisted via the Software Freedom Conservancy and to the many contributors for this release.

Saturday, May 26, 2012

Twisted 12.1.0pre1

Thanks to the efforts of Thomas Hervé, Twisted 12.1.0pre1 pre-release is now available for testing.You can find the tarballs here:
http://people.canonical.com/~therve/Twisted/12.1.0pre1/
Among the 106 tickets closed since our last release, you can find:

  • The revival of the kqueue reactor for BSD platforms.
  • epoll is now the default reactor under Linux after a fix to handle files on stdin/stdout.
  • New reactors supporting GTK3 and GObject-Introspection.
  • Several enhancements regarding file descriptors passing: systemd support for servers, ability to send and receive file descriptors across Unix sockets, and an AMP argument using that feature.
  • Support for IPv6 literals in connectTCP.
  • Persistent connections support for the new HTTP client.
This will be the last release supporting Python 2.5. Please give it a round of tests to help make a great release!

Saturday, May 19, 2012

Congratulations and welcome to Twisted's summer interns


Twisted is excited to be supporting 4 full-time summer interns from around the world through 2 internship programs this summer.

Google Summer of Code internships

Expanded Endpoints Support, by Ashwini Oruganti (IRC nick ashfall)


Ashwini joins us from the Manipal Institute of Technology in Manipal, India. She has already worked on and closed out a number of Twisted tickets and has previously contributed to Evolution and Sugar Labs.

Her project:

Recently, two new APIs, IStreamServerEndpoint and IStreamClientEndpoint were added to Twisted, for specifying what address the servers should listen for connections and what address a client should connect to, respectively. But not all of the addresses that Twisted supports have this endpoint support added to them; presently endpoint support has been implemented for TCP, SSL and UNIX domain sockets. My project deals with adding more endpoint implementation to Twisted, some involving wrappers around the existing APIs (e.g. serial ports, standard I/O), others involving making fresh APIs where setting up connections was difficult before the addition of the endpoints (e.g. SOCKS and HTTPS proxies).

Python 3 preparation, by Vladimir Perić (IRC nick vperic)


Vladimir joins us from Czech Technical University in Prague. Last year he was a Google Summer of Code student with SymPy.

His project:

Python 3 is the future of Python. If Twisted is to see continued usage in the future, it will have to be ported, and rather sooner than later. As Twisted is a large and complicated code-base, this process needs to be done with care, ensuring that any code written remains compatible with the currently supported versions. The test-driven development methodology Twisted uses will ensure no regressions happen and will ease the maintenance of the code-base.

Automatic Coding Standard Enforcement, by Raphael Shu (IRC nick zomux)


Raphael joins us from Tsukuba University in Japan, where he uses Python daily in his NLP research.

His project:

Twisted applies certain naming and style standards to all contributed code. Currently, a human reviewer needs to check all of these things. The purpose of this project is to develop a tool which can automatically make these simple, mechanical checks, freeing up human reviewer time to focus on more important aspects of proposed changes. Finally, it will speed up the review process.

Software Freedom Conservancy / GNOME Outreach Program internship

We are also excited to be working with the Software Freedom Conservancy and the GNOME Outreach Program for Women this summer. You can read more about the initiative and our work to encourage diverse participation in open source communities here. Through this initiative we have a 4th paid, full-time internship this summer:

Improving Twisted Mail and Twisted Core, by Fei Tan (IRC nick argonemyth)


Fei joins us from Grand Bay, Mauritius, where she works as a freelance web developer.

She will improve Twisted Mail on a number of fronts, including improving API documentation, adding more examples, adding more HOWTOs, and improved test coverage.

Please join me in welcoming Ashwini, Vladimir, Raphael, and Fei, whose internships start next week. Expect a torrent of code reviews and some record-breaking high scores list stats this summer!

Thank you Google for giving us this paid mentorship opportunity, and thank you to the Python Software Foundation for supporting us as our Google Summer of Code umbrella organization.

Saturday, March 31, 2012

Google Summer of Code and Outreach Program for Women

Twisted is participating in Google's Summer of Code this year. If you're a student interested in working on Twisted as part of a paid internship, please visit our Google SoC page. We use best practices like in-depth code reviews and full coverage unit tests, so this is a great way to improve your technical skills whether you're a beginner or an expert programmer.

In addition, Twisted and its non-profit home the Software Freedom Conservancy have partnered with the GNOME Outreach Program for Women to fund an internship for one woman to spend the summer participating in and contributing to Twisted, while being mentored by Jessica McKellar. Jessica is a long-time Twisted contributor as well as a software engineer and an organiser, among other things, of the Boston Python Workshops for women.

Unlike Google's program, the outreach program is not restricted to students; if you qualify, we do encourage you to apply to both. This internship is appropriate for any level of open source experience. If you have worked on an open source project before, great! If not, we'll help you learn the development and communication tools we use as part of the internship. Some Python experience is a prerequisite, and a small initial contribution to Twisted is a part of applying (if this sounds intimidating, don't worry, we'll help you pick a task to complete and you'll have lots of support as you work through submitting your first patch.) Please check out the full project description and apply today!

Saturday, February 11, 2012

Announcing Twisted 12.0

Thanks to Thomas Hervé, we are proud to announce the release of Twisted 12.0.

47 tickets are closed by this release, among them:
  • A fix to the GTK2 reactor preventing unnecessary wake-ups 
  • Preliminary support of IPV6 on the server side
  • Several fixes to the new protocol-based TLS implementation
  • Improved core documentation's main page 
Twisted no longer supports Python 2.4, the latest supported version is 2.5.

For more information, see the NEWS file here: http://twistedmatrix.com/Releases/Twisted/12.0/NEWS.txt

Download it now from:
http://pypi.python.org/packages/source/T/Twisted/Twisted-12.0.0.tar.bz2 or
http://pypi.python.org/packages/2.5/T/Twisted/Twisted-12.0.0.win32-py2.5.msi or
http://pypi.python.org/packages/2.6/T/Twisted/Twisted-12.0.0.win32-py2.6.msi or
http://pypi.python.org/packages/2.7/T/Twisted/Twisted-12.0.0.win32-py2.7.msi

Thanks to the supporters of Twisted via the Software Freedom Conservancy and to the many contributors for this release.

Monday, January 16, 2012

December Sprint Report

Twisted sprint? Twisted sprint! Here's the final Twisted sprint report of 2011, from our December 10th event at Smarterer in Boston.


David Sturgis:

  • was Sprint Host and Food Wrangler
  • discussed miscellaneous twisted.web feature

JP Calderone:

  • investigated 64 bit Windows 7 IPv6 problems
  • finished #5383: Provide a library for simple valued named constants
  • finished #5084: Accept IPv6 address literals (with embedded scope ids) in IReactorTCP.listenTCP
  • reviewed #3420: twisted.web.client persistent connections
  • reviewed #1902: compatibility work-around for commercial SSH 2.0.12 misbehaviours
  • reviewed #5400: Change UDP port to have an explicit state machine, and no FileDescriptor dependency
  • reviewed #3648: twisted.cred.credentials.UsernameHashedPassword doesn't hash password strings when checkPassword

This was the last sprint for JP as a Bostonian. We will miss you!


Itamar:

  • worked on #5427: Improve core documentation index page
  • reviewed #5383: Provide a library for simple valued named constants

Alex Levy:

  • made headway on several website and documentation improvements

Glyph:

  • discussed and then worked on #1956: Make a less sucky producer/consumer API

I (Jessica McKellar):

  • reviewed #5427: Improve core documentation index page
  • reviewed #5429: Documentation index
  • reviewed #5422: pbgtk2.py example is excessively complex

Thank you David for organizing this, and Smarterer for hosting.

Thank you to everyone who closed out 2011 with contributions to Twisted!