[ANN] IPython 0.10.1 is out.

Hi all,

we've just released IPython 0.10.1, full release notes are below.

Downloads in source and windows binary form are available in the usual location:
http://ipython.scipy.org/dist/

But since our switch to github, we also get automatic distribution of
archives there:
http://github.com/ipython/ipython/archives/rel-0.10.1

and we've also started uploading archives to the Python Package Index
(which easy_install will use by default):
http://pypi.python.org/pypi/ipython

so at any time you should find a location with good download speeds.

You can find the full documentation at:
http://ipython.scipy.org/doc/rel-0.10.1/html/index.html

Enjoy!

Fernando (on behalf of the whole IPython team)

Release 0.10.1

···

==============

IPython 0.10.1 was released October 11, 2010, over a year after version 0.10.
This is mostly a bugfix release, since after version 0.10 was released, the
development team's energy has been focused on the 0.11 series. We have
nonetheless tried to backport what fixes we could into 0.10.1, as it remains
the stable series that many users have in production systems they rely on.

Since the 0.11 series changes many APIs in backwards-incompatible ways, we are
willing to continue maintaining the 0.10.x series. We don't really have time
to actively write new code for 0.10.x, but we are happy to accept patches and
pull requests on the IPython `github site`_. If sufficient contributions are
made that improve 0.10.1, we will roll them into future releases. For this
purpose, we will have a branch called 0.10.2 on github, on which you can base
your contributions.

.. _github site: http://github.com/ipython

For this release, we applied approximately 60 commits totaling a diff of over
7000 lines::

    (0.10.1)amirbar[dist]> git diff --oneline rel-0.10.. | wc -l
    7296

Highlights of this release:

- The only significant new feature is that IPython's parallel computing
  machinery now supports natively the Sun Grid Engine and LSF schedulers. This
  work was a joint contribution from Justin Riley, Satra Ghosh and Matthieu
  Brucher, who put a lot of work into it. We also improved traceback handling
  in remote tasks, as well as providing better control for remote task IDs.

- New IPython Sphinx directive. You can use this directive to mark blocks in
  reSructuredText documents as containig IPython syntax (including figures) and
  the will be executed during the build::

  .. ipython::

      In [2]: plt.figure() # ensure a fresh figure

      @savefig psimple.png width=4in
      In [3]: plt.plot([1,2,3])
      Out[3]: [<matplotlib.lines.Line2D object at 0x9b74d8c>]

- Various fixes to the standalone ipython-wx application.

- We now ship internally the excellent argparse library, graciously licensed
  under BSD terms by Steven Bethard. Now (2010) that argparse has become part
  of Python 2.7 this will be less of an issue, but Steven's relicensing allowed
  us to start updating IPython to using argparse well before Python 2.7. Many
  thanks!

- Robustness improvements so that IPython doesn't crash if the readline library
  is absent (though obviously a lot of functionality that requires readline
  will not be available).

- Improvements to tab completion in Emacs with Python 2.6.

- Logging now supports timestamps (see ``%logstart?`` for full details).

- A long-standing and quite annoying bug where parentheses would be added to
  ``print`` statements, under Python 2.5 and 2.6, was finally fixed.

- Improved handling of libreadline on Apple OSX.

- Fix ``reload`` method of IPython demos, which was broken.

- Fixes for the ipipe/ibrowse system on OSX.

- Fixes for Zope profile.

- Fix %timeit reporting when the time is longer than 1000s.

- Avoid lockups with ? or ?? in SunOS, due to a bug in termios.

- The usual assortment of miscellaneous bug fixes and small improvements.

The following people contributed to this release (please let us know if we
omitted your name and we'll gladly fix this in the notes for the future):

* Beni Cherniavsky
* Boyd Waters.
* David Warde-Farley
* Fernando Perez
* Gökhan Sever
* Justin Riley
* Kiorky
* Laurent Dufrechou
* Mark E. Smith
* Matthieu Brucher
* Satrajit Ghosh
* Sebastian Busch
* Václav Šmilauer

Hi all,

Illustrating the need to *always* remember we credit in the commit
message the name of the person who made a contribution originally...

2010/10/12 Fernando Perez <fperez.net@...287...>:

Hi all,
- New IPython Sphinx directive. You can use this directive to mark blocks in
reSructuredText documents as containig IPython syntax (including figures) and
the will be executed during the build::

[...]

The following people contributed to this release (please let us know if we
omitted your name and we'll gladly fix this in the notes for the future):

...
I completely failed to note that this feature (one out of the only two
new features in 0.10.2!) was contributed by John Hunter.

John shall be generously compensated for this offense with fresh
coffee and tropical fruit candy from Colombia, so there's nothing to
worry :slight_smile:

But this is a good lesson for the committers. I wrote the release
notes last night by scanning the full changelog and running this
function:

function gauthor() {
    git log "$@" | grep '^Author' | cut -d' ' -f 2- | sort | uniq
}

Since when John sent this, I failed to record his name in the
changelog, last night I simply forgot. It's very, very hard to
remember months after the fact where any one piece of code came from,
so let's try to be disciplined about *always*:

- if the contribution is more or less ready-to-commit as sent, and the
committer only does absolutely minimal work, use

git commit --author="Original Author <original@...3319...>"

- If the committer does significant amounts of rework, note the
original author in the long part of the commit message (after the
first summary line). This will make it possible to find that
information later when writing the release notes.

Here are some examples from our log where I didn't screw up:

- Using --author:
commit 8323fa343e74a01394e85f3874249b955131976a
Author: Sebastian Busch <>

···

Date: Sun Apr 25 10:57:39 2010 -0700

    Improvements to Vim support for visual mode.

    Patch by Sebastian Busch.

    Note: this patch was originally for the 0.10 series, I (fperez) minimally
    fixed it for 0.11 but it may still require some tweaking to work well with
    the refactored codebase.

    Closes Bug #460359 “ipy.vim understands visual mode” : Bugs : IPython

-- Not using --author, but recording origin:
commit ffa96dbc431628218dec604d59bb80511af40751
Author: Fernando Perez <Fernando.Perez@...1016...>
Date: Sat Apr 24 20:35:08 2010 -0700

    Fix readline detection bug in OSX.

    Close Bug #411599 “OSX readline detection fails in the debugger” : Bugs : IPython

    Thanks to a patch by Boyd Waters.

Ideally, when a significant new feature lands, we should immediately
summarize it in the whatsnew/ docs, but I know that is often hard to
do, as features continue to evolve or a while. All the more reason
why commit messages with sufficient, accurate information are so
important.

Cheers,

f