[IPython-dev] Release plans...

Fernando Perez fperez.net at gmail.com
Thu Apr 5 17:56:06 EDT 2007

Hi all,

I've been heavily using the thread support with async exceptions, and
everything looks good so far.  Furthermore, the combined

-Xthread -tk  (or -pylab -tk)

is also working wonders under Ubuntu, so that you can keep Wx/GTK/Qt
windows alive coexisting with Tk ones.  This is critical for me, since
it lets me use Mayavi1 (a Tk app) along with the better Matplotlib
backends (like Wx) and the Enthought tools (all Wx based).  All

So far this hasn't crashed, locked up or otherwise misbehaved, so I'm
cautiously optimistic.

I would then like to draft up a quick plan for release:

1. If anyone has any pending issues they feel *need* to be addressed
*now*, speak up.  File a ticket, target it to the 0.7.4 milestone, and
we'll do our best.  I cleared all existing tickets and everything I
had in my inbox.

2. If we get good feedback of this feature, I'd like to release next
Monday or Tuesday.  I have a trip at the end of the week, so Tuesday
is my cutoff date.

3. If the async exception feature holds the beating, I'd like to
release as 0.8.0.  For a certain class of users, this is actually a
big deal and a significant change in behavior.  It's also worth noting
that our changes since 0.7.3 haven't exactly been small:

planck[ipython]> svn diff -r"{2006-12-20}" | wc -l

and we have lots of other new features, goodies and bugfixes.  I don't
think anyone can accuse ipython of version number inflation, with 5+
years to reach 0.7.x :)

Let me know of any feedback you may have on these points, otherwise
I'll proceed for a Tuesday release of 0.8.0 without any major changes
from the current RC (I have a few tiny local changes).

And please, if you can, beat on that Ctrl-C+threads feature and let me
know how it goes.

Also, if anyone knows how to identify the main thread ID with cleaner
code than this ugly hack:

def _set_main_thread_id():
    """Ugly hack to find the main thread's ID.
    global MAIN_THREAD_ID
    for tid, tobj in threading._active.items():
        # There must be a better way to do this than looking at the str() for
        # each thread object...
        if 'MainThread' in str(tobj):
            #print 'main tid:',tid  # dbg
            MAIN_THREAD_ID = tid

let me know.  There has to be one...



More information about the IPython-dev mailing list