diff --git a/IPython/Release.py b/IPython/Release.py index 60fbce3..542d3aa 100644 --- a/IPython/Release.py +++ b/IPython/Release.py @@ -2,7 +2,7 @@ """Release data for the IPython project.""" #***************************************************************************** -# Copyright (C) 2008-2009 The IPython Development Team +# Copyright (C) 2008-2010 The IPython Development Team # Copyright (C) 2001-2008 Fernando Perez # Copyright (c) 2001 Janko Hauser and Nathaniel Gray # diff --git a/IPython/__init__.py b/IPython/__init__.py index f07db8a..ce4f990 100644 --- a/IPython/__init__.py +++ b/IPython/__init__.py @@ -29,7 +29,7 @@ IPython requires Python 2.4 or newer. """ #***************************************************************************** -# Copyright (C) 2008-2009 The IPython Development Team +# Copyright (C) 2008-2010 The IPython Development Team # Copyright (C) 2001-2007 Fernando Perez. # # Distributed under the terms of the BSD License. The full license is in diff --git a/IPython/testing/iptest.py b/IPython/testing/iptest.py index 48ed1e7..14f5d92 100644 --- a/IPython/testing/iptest.py +++ b/IPython/testing/iptest.py @@ -76,11 +76,11 @@ EXCLUDE = [pjoin('IPython', 'external'), pjoin('IPython', 'testing', 'tutils'), pjoin('IPython', 'testing', 'tools'), pjoin('IPython', 'testing', 'mkdoctests'), + pjoin('IPython', 'gui'), ] if not have_wx: EXCLUDE.append(pjoin('IPython', 'Extensions', 'igrid')) - EXCLUDE.append(pjoin('IPython', 'gui')) EXCLUDE.append(pjoin('IPython', 'frontend', 'wx')) if not have_wx_aui: diff --git a/docs/source/changes.txt b/docs/source/changes.txt index 7f050a6..40c4267 100644 --- a/docs/source/changes.txt +++ b/docs/source/changes.txt @@ -12,6 +12,102 @@ What's new ========== +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]: [] + +- 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 +ommitted 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 + + Release 0.10 ============ diff --git a/docs/source/history.txt b/docs/source/history.txt index 439f8e4..d1f5d97 100644 --- a/docs/source/history.txt +++ b/docs/source/history.txt @@ -7,7 +7,7 @@ History Origins ======= -IPython was starting in 2001 by Fernando Perez. IPython as we know it +IPython was started in 2001 by Fernando Perez. IPython as we know it today grew out of the following three projects: * ipython by Fernando Pérez. I was working on adding diff --git a/docs/sphinxext/numpydoc.py b/docs/sphinxext/numpydoc.py index ff6c44c..5167ec6 100644 --- a/docs/sphinxext/numpydoc.py +++ b/docs/sphinxext/numpydoc.py @@ -67,8 +67,9 @@ def mangle_docstrings(app, what, name, obj, options, lines, def mangle_signature(app, what, name, obj, options, sig, retann): # Do not try to inspect classes that don't define `__init__` - if (inspect.isclass(obj) and - 'initializes x; see ' in pydoc.getdoc(obj.__init__)): + init = getattr(obj, '__init__', None) + if (init is not None and + 'initializes x; see ' in pydoc.getdoc(init)): return '', '' if not (callable(obj) or hasattr(obj, '__argspec_is_invalid_')): return diff --git a/tools/build_release b/tools/build_release index ba2e0c1..406fe04 100755 --- a/tools/build_release +++ b/tools/build_release @@ -14,15 +14,17 @@ execfile(pjoin('IPython','Release.py')) compile_tree() # Cleanup -for d in ['build','dist',pjoin('docs','build'),pjoin('docs','dist')]: +for d in ['build','dist',pjoin('docs','build'),pjoin('docs','dist'), + pjoin('docs','source','api','generated')]: if os.path.isdir(d): remove_tree(d) # Build source and binary distros c('./setup.py sdist --formats=gztar,zip') + # Build eggs -c('python2.5 ./setupegg.py bdist_egg') +#c('python2.5 ./setupegg.py bdist_egg') c('python2.6 ./setupegg.py bdist_egg') # Call the windows build separately, so that the extra Windows scripts don't diff --git a/tools/make_tarball.py b/tools/make_tarball.py index dd5fc90..87acda3 100755 --- a/tools/make_tarball.py +++ b/tools/make_tarball.py @@ -1,21 +1,25 @@ #!/usr/bin/env python -"""Simple script to create a tarball with proper bzr version info. +"""Simple script to create a tarball with proper git info. """ +import commands import os import sys import shutil from toollib import * -execfile('../IPython/Release.py') # defines version_base +tag = commands.getoutput('git describe') +base_name = 'ipython-%s' % tag +tar_name = '%s.tgz' % base_name -ver = version_info() +# git archive is weird: Even if I give it a specific path, it still won't +# archive the whole tree. It seems the only way to get the whole tree is to cd +# to the top of the tree. There are long threads (since 2007) on the git list +# about this and it still doesn't work in a sensible way... -if ver['branch-nick'] == 'ipython': - tarname = 'ipython-%s.bzr.r%s.tgz' % (version_base, ver['revno']) -else: - tarname = 'ipython-%s.bzr.r%s.%s.tgz' % (version_base, ver['revno'], - ver['branch-nick']) - -c('bzr export ' + tarname) +start_dir = os.getcwd() +cd('..') +git_tpl = 'git archive --format=tar --prefix={0}/ HEAD | gzip > {1}' +c(git_tpl.format(base_name, tar_name)) +c('mv {0} tools/'.format(tar_name)) diff --git a/tools/release b/tools/release index f0fe09b..85fad3f 100755 --- a/tools/release +++ b/tools/release @@ -40,6 +40,7 @@ cd(ipdir) c('./setup.py register') # Upload all files +c('./setup.py sdist --formats=gztar,zip upload') cd(distdir) print "Uploading distribution files..." c('scp * ipython@ipython.scipy.org:www/dist/') diff --git a/tools/toollib.py b/tools/toollib.py index 206bd7a..3185103 100644 --- a/tools/toollib.py +++ b/tools/toollib.py @@ -46,10 +46,3 @@ def compile_tree(): msg = '*** ERROR: Some Python files in tree do NOT compile! ***\n' msg += 'See messages above for the actual file that produced it.\n' raise SystemExit(msg) - - -def version_info(): - """Return bzr version info as a dict.""" - out = os.popen('bzr version-info') - pairs = (l.split(':',1) for l in out) - return dict(((k,v.strip()) for (k,v) in pairs))