[IPython-dev] Starting to plan for 0.11 (this time for real)

Fernando Perez fperez.net at gmail.com
Fri Oct 29 23:28:19 EDT 2010

On Fri, Oct 29, 2010 at 11:23 AM, Brian Granger <ellisonbg at gmail.com> wrote:
> Remove all of the twisted stuff from 0.11 and put the new zmq stuff in
> place as a prototype.
> Here is my logic:
> * The Twisted parallel stuff is *already* broken in 0.11 and if anyone
> has stable code running on it, they should be using 0.10.
> * If someone is happy to run non-production ready code, there is no
> reason they should be using the Twisted stuff, they should use the
> pyzmq stuff.
> * Twisted is a *massive* burden on our code base:
>  - For package managers, it brings in Twisted, Foolscap and zope.interface.
>  - It makes our test suite unstable and fragile because we have to
> run tests in subprocesses and use trial sometimes and nose other
> times.
>  - It is a huge # of LOC.
>  - It means that most of our codebase is Python 3 ready.
> There are lots of cons to this proposal:
> * That is really quick to drop support for the Twisted stuff.
> * We may piss some people off.
> * It possibly means maintaining the 0.10 series longer than we imagined.
> * We don't have a security story for the pyzmq parallel stuff yet.

I have to say that I simply didn't have Brian's boldness to propose
this, but I think it's the right thing to do, ultimately.  It *is*
painful in the short term, but it's also the honest approach.  I keep
forgetting but Brian reminded me that even the Twisted-based code in
0.11 has serious regressions re. the 0.10.x series, since in the big
refactoring for 0.11 not quite everything made it through.

The 0.10 maintenance doesn't worry me a whole lot: as long as we limit
it to small changes, by now merging them as self-contained pull
requests is really easy (as I just did recently with the ones Paul and
Tom sent).  And rolling out a new release when the total delta is
small is actually not that much work.

So I'm totally +1 on this radical, but I think ultimately beneficial,
approach.  It's important to keep in mind that doing this will lift a
big load off our shoulders, and we're a small enough team that this
benefit is significant.  It will let us concentrate on moving the new
machinery forward quickly without having to worry about the large
Twisted code.  It will also help Thomas with his py3 efforts, as it's
one less thing he has to keep getting out of his way.

Concrete plan:

- Wait a week or two for feedback.
- If we decide to move ahead, make a shared branch on the main repo
where we can do this work and review it, with all having the chance to
contribute while it happens.
- Move all twisted-using code (IPython/kernel and some code in
IPython/testing) into IPython/deathrow.  This will let anyone who
reall wants it find it easily, without having to dig through version
control history.  Note that deathrow does *not* make it into official
release tarballs.



More information about the IPython-dev mailing list