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

Fernando Perez fperez.net at gmail.com
Sat Oct 30 18:47:29 EDT 2010


On Sat, Oct 30, 2010 at 12:36 AM, Gael Varoquaux
<gael.varoquaux at normalesup.org> wrote:
> I haven't been contributing to the discussion, because I don't have any
> time to contribute. Here is my gut feeling and an end user:
>
> Progress made in 0.11 looks awesome. However, I am not sure what the net
> gain is for an user. It seems to me that the core architecture is there,
> but the end-user aspects are not finished. The twisted code is gone, but
> I hear that the pyzmq code to replace it is not stable yet. So, here is
> the question: why release now, and not in 6 months? If you release now,
> distributions will almost automatically package 0.11, so it will land on
> user's boxes.
>
> This is a naive question, I may very well have missed important aspect of
> the discussion.

Yes, you missed the whole point, I'm afraid.

0.11 has major new *features* for end-users that are already very
usable.  The Qt console isn't perfect, but it's very, very, very nice
as an everyday working environment, and it has a massive amount of
improvements for many use cases over the terminal-only one.  James'
html client also offers remote collaboration and zero-install
capabilities that we don't have anywhere else, and even as the
architecture there is refined, that's already a big win for end users.
 The new configuration system is also much cleaner and nicer, and the
layout of the actual source code is far more rational and navigable
than before, a big win for potential new contributors.

Most importantly, now there's a proper *architecture* for how the
entire ipython machinery works across all modalities (one-process,
multi-process interactive, parallel) that is well thought out *and*
documented.  A data point that indicates that we probably got more
things right than wrong was that I spent probably less than one hour
explaining to James the messaging design, and without *ever* having
done any ipython coding, in a couple of days he came back with a fully
working html notebook.  Doing something like that with the 0.10-era
code would have been unthinkable (as someone who wrestled that code
into the ground for embedding as a client, you know full well the
nightmare it was, and how much nasty work it took).

We've recently had Evan Patterson, Mark Voorhies and James Gao land
into the IPython codebase and immediately make real contributions:
this  is an indicator that for the first time ever, we have a codebase
that can actually accept new participants without dragging them into
the nightmare-inducing maze of object-oriented spaghetti we had
before.  Having seen this, the best way to gain contributors is to
have people use the new features, find something they like and then
find something they don't like but are willing to fix/improve.

Furthermore, many many apis have changed in backwards-incompatible
ways.  It's important that people who had developed other projects
using ipython as a library have a chance to adapt their projects, give
us feedback so we can fine-tune things to make their job easier, make
suggestions of what could be done better from our side, etc.  So we
want those projects to have a clear starting point where their
developers can test things out.  If we wait until everything has
settled 6 months from now, it may be harder to adjust to their
feedback.

In summary, both from the perspective of end users and that of
developers building atop ipython, we have very good reasons to not
delay a release much further (4-8 weeks from now is OK, 6 months is
most definitely not).  We'll label it clearly so that nobody gets 0.11
when they don't expect it, but we do want these new features out for
people to both enjoy and to hammer on while they're still warm enough
that we can mold them.

Cheers,

f



More information about the IPython-dev mailing list