[IPython-dev] [ANN] IPython 1.0 is finally released, nearly 12 years in the making!
Thu Aug 8 20:42:27 CDT 2013
Hurrah! Very well done. Please allow me to extend my gratitude for
such an excellent tool. I have been evangelizing my colleagues in
hep-ex, and gradually some of them are adopting IPython in their daily
work. Soon, IPython will take over the world!
On 08/08/2013 08:35 PM, Fernando Perez wrote:
> Hi all,
> I am incredibly thrilled, on behalf of the amazing IPython Dev Team,
> to announce the official release of IPython 1.0 today, an effort
> nearly 12 years in the making. The previous version (0.13) was
> released on June 30, 2012, and in this development cycle we had:
> ~12 months of work.
> ~700 pull requests merged.
> ~600 issues closed (non-pull requests).
> contributions from ~150 authors.
> ~4000 commits.
> # A little context
> What does "1.0" mean for IPython? Obviously IPython has been a staple
> of the scientific Python community for years, and we've made every
> effort to make it a robust and production ready tool for a long time,
> so what exactly do we mean by tagging this particular release as 1.0?
> Basically, we feel that the core design of IPython, and the scope of
> the project, is where we want it to be.
> What we have today is what we consider a reasonably complete, design-
> and scope-wise, IPython 1.0: an architecture for interactive
> computing, that can drive kernels in a number of ways using a
> well-defined protocol, and rich and powerful clients that let users
> control those kernels effectively. Our different clients serve
> different needs, with the old workhorse of the terminal still being
> very useful, but much of our current development energy going into the
> Notebook, obviously. The Notebook enables interactive exploration to
> become Literate Computing, bridging the gaps from individual work to
> collaboration and publication, all with an open file format that is a
> direct record of the underlying communication protocol.
> There are obviously plenty of open issues (many of them very
> important) that need fixing, and large and ambitious new lines of
> development for the years to come. But the work of the last four
> years, since the summer of 2009 when Brian Granger was able to devote
> a summer (thanks to funding from the NiPy project - nipy.org) to
> refactoring the old IPython core code, finally opened up or
> infrastructure for real innovation. By disentangling what was a useful
> but impenetrable codebase, it became possible for us to start building
> a flexible, modern system for interactive computing that abstracted
> the old REPL model into a generic protocol that kernels could use to
> talk to clients. This led at first to the creation of the Qt console,
> and then to the Notebook and out-of-process terminal client. It also
> allowed us to (finally!) unify our parallel computing machinery with
> the rest of the interactive system, which Min Ragan-Kelley pulled off
> in a development tour de force that involved rewriting in a few weeks
> a huge and complex Twisted-based system.
> We are very happy with how the Notebook work has turned out, and it
> seems the entire community agrees with us, as the uptake has been
> phenomenal. Back from the very first "IPython 0.0.1" that I started
> in 2001:
> there were already hints of tools like Mathematica: it was my everyday
> workhorse as a theoretical physicist and I found its Notebook
> environment invaluable. But as a grad student trying out "just an
> afternoon hack" (IPython was my very first Python program as I was
> learning the language), I didn't have the resources, skills or vision
> to attempt building an entire notebook system, and to be honest the
> tools of the day would have made that enterprise a miserable one. But
> those ideas were always driving our efforts, and as IPython started
> becoming a project with a team, we made multiple attempts to get a
> good Notebook built around IPython. Those interested can read an old
> blog post of mine with the history
> The short story is that in 2011, on our sixth attempt, Brian was again
> able to devote a focused summer into using our client-server
> websockets, Tornado, ...), finally build a robust system for Literate
> Computing across programming languages.
> Today, thanks to the generous support and vision of Josh Greenberg at
> the Alfred P. Sloan Foundation, we are working very hard on building
> the notebook infrastructure, and this release contains major advances
> on that front. We have high hopes for what we'll do next; as a
> glimpse of the future that this enables, now there is a native Julia
> kernel that speaks to our clients, notebook included:
> # Team
> I can't stress enough how impressed I am with the work people are
> doing in IPython, and what a privilege it is to work with colleagues
> like these. Brian Granger and Min Ragan-Kelley joined IPython around
> 2005, initially working on the parallel machinery, but since ~ 2009
> they have become the heart of the project. Today Min is our top
> committer and knows our codebase better than anyone else, and I can't
> imagine better partners for an effort like this.
> And from regulars in our core team like Thomas Kluyver, Matthias
> Bussonnier, Brad Froehle and Paul Ivanov to newcomers like Jonathan
> Frederic and Zach Sailer, in addition to the many more whose names are
> in our logs, we have a crazy amount of energy being poured into
> IPython. I hope we'll continue to harness it productively!
> The full list of contributors to this release can be seen here:
> # Release highlights
> * nbconvert: this is the major piece of new functionality in this
> cycle, and was an explicit part of our roadmap
> (https://github.com/ipython/ipython/wiki/Roadmap:-IPython). nbconvert
> is now an IPython subcommand to convert notebooks into other formats
> such as HTML or LaTeX, but more importantly, it's a very flexible
> system that lets you write custom templates to generate new output
> with arbitrary control over the formatting and transformations that
> are applied to the input.
> We want to stress that despite the fact that a huge amount of work
> went into nbconvert, this should be considered a *tech preview*
> release. We've come to realize how complex this problem is, and while
> we'll make every effort to keep the high-level command-line syntax and
> APIs as stable as possible, it is quite likely that the internals will
> continue to evolve, possibly in backwards-incompatible ways. So if
> you start building services and libraries that make heavy use of the
> nbconvert internals, please be prepared for some turmoil in the months
> to come, and ping us on the dev list with questions or concerns.
> * Notebook improvements: there has been a ton of polish work in the
> notebook at many levels, though the file format remains unchanged from
> 0.13, so you shouldn't have any problems sharing notebooks with
> colleagues still using 0.13.
> - Autosave: probably the most oft-requested feature, the notebook
> server now autosaves your files! You can still hit Ctrl-S to force a
> manual save (which also creates a special 'checkpoint' you can come
> back to).
> - The notebook supports raw_input(), and thus also %debug. This was
> probably the main deficiency of the notebook as a client compared to
> the terminal/qtconsole, and it has been finally fixed.
> writing raw output in notebook cells.
> - Fix an issue parsing LaTeX in markdown cells, which required users
> to type \\\, instead of \\.
> -Images support width and height metadata, and thereby 2x scaling
> (retina support).
> - %%file has been renamed %%writefile (%%file) is deprecated.
> * The input transofrmation code has been updated and rationalized.
> This is a somewhat specialized part of IPython, but of importance to
> projects that build upon it for custom environments, like Sympy and
> Our full release notes are here:
> and the gory details are here:
> # Installation
> Installation links and instructions are at: http://ipython.org/install.html
> And IPython is also on PyPI: http://pypi.python.org/pypi/ipython
> # Requirements
> IPython 1.0 requires Python ≥ 2.6.5 or ≥ 3.2.1. It does not support
> Python 3.0, 3.1, or 2.5.
> # Acknowledgments
> Last but not least, we'd like to acknowledge the generous support of
> those who make it possible for us to spend our time working on
> IPython. In particular, the Alfred P. Sloan Foundation today lets us
> have a solid team working full-time on the project, and without the
> support of Enthought Inc at multiple points in our history, we
> wouldn't be where we are today.
> The full list of our support is here:
> Thanks to everyone! Please enjoy IPython 1.0, and report all bugs as usual!
> Fernando, on behalf of the IPython Dev Team.
More information about the IPython-dev