~ubuntu-branches/ubuntu/raring/ipython/raring

« back to all changes in this revision

Viewing changes to docs/source/whatsnew/version0.10.txt

  • Committer: Package Import Robot
  • Author(s): Julian Taylor
  • Date: 2011-11-22 23:40:57 UTC
  • mfrom: (6.1.5 sid)
  • Revision ID: package-import@ubuntu.com-20111122234057-ta86ocdahnhwmnd8
Tags: 0.11-2
* upload to unstable
* add patch fix-version-checks-for-pyzmq-2.1.10.patch
* fix debianize-error-messages.patch to reraise unknown exceptions
* suggest python-zmq for ipython package
* use dh_sphinxdoc
  - bump sphinx dependency to >= 1.0.7+dfsg-1~, replace libjs-jquery
    dependency with ${sphinxdoc:Depends} and drop ipython-doc.links
* remove empty directory from ipython
* link duplicate images in ipython-doc
* remove obsolete Conflicts and Replaces

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
=============
 
2
 0.10 series
 
3
=============
 
4
 
 
5
Release 0.10.2
 
6
==============
 
7
 
 
8
IPython 0.10.2 was released April 9, 2011.  This is a minor bugfix release that
 
9
preserves backward compatibility.  At this point, all IPython development
 
10
resources are focused on the 0.11 series that includes a complete architectural
 
11
restructuring of the project as well as many new capabilities, so this is
 
12
likely to be the last release of the 0.10.x series.  We have tried to fix all
 
13
major bugs in this series so that it remains a viable platform for those not
 
14
ready yet to transition to the 0.11 and newer codebase (since that will require
 
15
some porting effort, as a number of APIs have changed).
 
16
 
 
17
Thus, we are not opening a 0.10.3 active development branch yet, but if the
 
18
user community requires new patches and is willing to maintain/release such a
 
19
branch, we'll be happy to host it on the IPython github repositories.
 
20
 
 
21
Highlights of this release:
 
22
 
 
23
- The main one is the closing of github ticket #185, a major regression we had
 
24
  in 0.10.1 where pylab mode with GTK (or gthread) was not working correctly,
 
25
  hence plots were blocking with GTK.  Since this is the default matplotlib
 
26
  backend on Unix systems, this was a major annoyance for many users.  Many
 
27
  thanks to Paul Ivanov for helping resolve this issue.
 
28
  
 
29
- Fix IOError bug on Windows when used with -gthread.
 
30
- Work robustly if $HOME is missing from environment.
 
31
- Better POSIX support in ssh scripts (remove bash-specific idioms).
 
32
- Improved support for non-ascii characters in log files.
 
33
- Work correctly in environments where GTK can be imported but not started
 
34
  (such as a linux text console without X11).
 
35
  
 
36
For this release we merged 24 commits, contributed by the following people
 
37
(please let us know if we ommitted your name and we'll gladly fix this in the
 
38
notes for the future):
 
39
 
 
40
* Fernando Perez
 
41
* MinRK
 
42
* Paul Ivanov
 
43
* Pieter Cristiaan de Groot
 
44
* TvrtkoM
 
45
 
 
46
Release 0.10.1
 
47
==============
 
48
 
 
49
IPython 0.10.1 was released October 11, 2010, over a year after version 0.10.
 
50
This is mostly a bugfix release, since after version 0.10 was released, the
 
51
development team's energy has been focused on the 0.11 series.  We have
 
52
nonetheless tried to backport what fixes we could into 0.10.1, as it remains
 
53
the stable series that many users have in production systems they rely on.
 
54
 
 
55
Since the 0.11 series changes many APIs in backwards-incompatible ways, we are
 
56
willing to continue maintaining the 0.10.x series.  We don't really have time
 
57
to actively write new code for 0.10.x, but we are happy to accept patches and
 
58
pull requests on the IPython `github site`_.  If sufficient contributions are
 
59
made that improve 0.10.1, we will roll them into future releases.  For this
 
60
purpose, we will have a branch called 0.10.2 on github, on which you can base
 
61
your contributions.
 
62
 
 
63
.. _github site: http://github.com/ipython
 
64
 
 
65
For this release, we applied approximately 60 commits totaling a diff of over
 
66
7000 lines::
 
67
 
 
68
    (0.10.1)amirbar[dist]> git diff --oneline rel-0.10.. | wc -l
 
69
    7296
 
70
 
 
71
Highlights of this release:
 
72
 
 
73
- The only significant new feature is that IPython's parallel computing
 
74
  machinery now supports natively the Sun Grid Engine and LSF schedulers.  This
 
75
  work was a joint contribution from Justin Riley, Satra Ghosh and Matthieu
 
76
  Brucher, who put a lot of work into it.  We also improved traceback handling
 
77
  in remote tasks, as well as providing better control for remote task IDs.
 
78
 
 
79
- New IPython Sphinx directive contributed by John Hunter.  You can use this
 
80
  directive to mark blocks in reSructuredText documents as containing IPython
 
81
  syntax (including figures) and the will be executed during the build:
 
82
 
 
83
  .. sourcecode:: ipython
 
84
 
 
85
      In [2]: plt.figure()  # ensure a fresh figure
 
86
 
 
87
      @savefig psimple.png width=4in
 
88
      In [3]: plt.plot([1,2,3])
 
89
      Out[3]: [<matplotlib.lines.Line2D object at 0x9b74d8c>]
 
90
 
 
91
- Various fixes to the standalone ipython-wx application.
 
92
 
 
93
- We now ship internally the excellent argparse library, graciously licensed
 
94
  under BSD terms by Steven Bethard.  Now (2010) that argparse has become part
 
95
  of Python 2.7 this will be less of an issue, but Steven's relicensing allowed
 
96
  us to start updating IPython to using argparse well before Python 2.7.  Many
 
97
  thanks!
 
98
 
 
99
- Robustness improvements so that IPython doesn't crash if the readline library
 
100
  is absent (though obviously a lot of functionality that requires readline
 
101
  will not be available).
 
102
 
 
103
- Improvements to tab completion in Emacs with Python 2.6.
 
104
 
 
105
- Logging now supports timestamps (see ``%logstart?`` for full details).
 
106
 
 
107
- A long-standing and quite annoying bug where parentheses would be added to
 
108
  ``print`` statements, under Python 2.5 and 2.6, was finally fixed.
 
109
 
 
110
- Improved handling of libreadline on Apple OSX.
 
111
 
 
112
- Fix ``reload`` method of IPython demos, which was broken.
 
113
 
 
114
- Fixes for the ipipe/ibrowse system on OSX.
 
115
 
 
116
- Fixes for Zope profile.
 
117
 
 
118
- Fix %timeit reporting when the time is longer than 1000s.
 
119
 
 
120
- Avoid lockups with ? or ?? in SunOS, due to a bug in termios.
 
121
 
 
122
- The usual assortment of miscellaneous bug fixes and small improvements.
 
123
 
 
124
The following people contributed to this release (please let us know if we
 
125
omitted your name and we'll gladly fix this in the notes for the future):
 
126
 
 
127
* Beni Cherniavsky
 
128
* Boyd Waters.
 
129
* David Warde-Farley
 
130
* Fernando Perez
 
131
* Gökhan Sever
 
132
* John Hunter
 
133
* Justin Riley
 
134
* Kiorky
 
135
* Laurent Dufrechou
 
136
* Mark E. Smith
 
137
* Matthieu Brucher
 
138
* Satrajit Ghosh
 
139
* Sebastian Busch
 
140
* Václav Šmilauer
 
141
 
 
142
Release 0.10
 
143
============
 
144
 
 
145
This release brings months of slow but steady development, and will be the last
 
146
before a major restructuring and cleanup of IPython's internals that is already
 
147
under way.  For this reason, we hope that 0.10 will be a stable and robust
 
148
release so that while users adapt to some of the API changes that will come
 
149
with the refactoring that will become IPython 0.11, they can safely use 0.10 in
 
150
all existing projects with minimal changes (if any).
 
151
 
 
152
IPython 0.10 is now a medium-sized project, with roughly (as reported by David
 
153
Wheeler's :command:`sloccount` utility) 40750 lines of Python code, and a diff
 
154
between 0.9.1 and this release that contains almost 28000 lines of code and
 
155
documentation.  Our documentation, in PDF format, is a 495-page long PDF
 
156
document (also available in HTML format, both generated from the same sources).
 
157
 
 
158
Many users and developers contributed code, features, bug reports and ideas to
 
159
this release.  Please do not hesitate in contacting us if we've failed to
 
160
acknowledge your contribution here.  In particular, for this release we have
 
161
contribution from the following people, a mix of new and regular names (in
 
162
alphabetical order by first name):
 
163
 
 
164
* Alexander Clausen: fix #341726.
 
165
* Brian Granger: lots of work everywhere (features, bug fixes, etc).
 
166
* Daniel Ashbrook: bug report on MemoryError during compilation, now fixed.
 
167
* Darren Dale: improvements to documentation build system, feedback, design
 
168
  ideas.
 
169
* Fernando Perez: various places.
 
170
* Gaël Varoquaux: core code, ipythonx GUI, design discussions, etc. Lots...
 
171
* John Hunter: suggestions, bug fixes, feedback.
 
172
* Jorgen Stenarson: work on many fronts, tests, fixes, win32 support, etc.
 
173
* Laurent Dufréchou: many improvements to ipython-wx standalone app.
 
174
* Lukasz Pankowski: prefilter, `%edit`, demo improvements.
 
175
* Matt Foster: TextMate support in `%edit`.
 
176
* Nathaniel Smith: fix #237073.
 
177
* Pauli Virtanen: fixes and improvements to extensions, documentation.
 
178
* Prabhu Ramachandran: improvements to `%timeit`.
 
179
* Robert Kern: several extensions.
 
180
* Sameer D'Costa: help on critical bug #269966.
 
181
* Stephan Peijnik: feedback on Debian compliance and many man pages.
 
182
* Steven Bethard: we are now shipping his :mod:`argparse` module.
 
183
* Tom Fetherston: many improvements to :mod:`IPython.demo` module.
 
184
* Ville Vainio: lots of work everywhere (features, bug fixes, etc).
 
185
* Vishal Vasta: ssh support in ipcluster.
 
186
* Walter Doerwald: work on the :mod:`IPython.ipipe` system.
 
187
 
 
188
Below we give an overview of new features, bug fixes and backwards-incompatible
 
189
changes.  For a detailed account of every change made, feel free to view the
 
190
project log with :command:`bzr log`.
 
191
 
 
192
New features
 
193
------------
 
194
 
 
195
* New `%paste` magic automatically extracts current contents of clipboard and
 
196
  pastes it directly, while correctly handling code that is indented or
 
197
  prepended with `>>>` or `...` python prompt markers.  A very useful new
 
198
  feature contributed by Robert Kern.
 
199
 
 
200
* IPython 'demos', created with the :mod:`IPython.demo` module, can now be
 
201
  created from files on disk or strings in memory.  Other fixes and
 
202
  improvements to the demo system, by Tom Fetherston.
 
203
 
 
204
* Added :func:`find_cmd` function to :mod:`IPython.platutils` module, to find
 
205
  commands in a cross-platform manner.
 
206
 
 
207
* Many improvements and fixes to Gaël Varoquaux's :command:`ipythonx`, a
 
208
  WX-based lightweight IPython instance that can be easily embedded in other WX
 
209
  applications.  These improvements have made it possible to now have an
 
210
  embedded IPython in Mayavi and other tools.
 
211
 
 
212
* :class:`MultiengineClient` objects now have a :meth:`benchmark` method.
 
213
 
 
214
* The manual now includes a full set of auto-generated API documents from the
 
215
  code sources, using Sphinx and some of our own support code.  We are now
 
216
  using the `Numpy Documentation Standard`_  for all docstrings, and we have
 
217
  tried to update as many existing ones as possible to this format.
 
218
 
 
219
* The new :mod:`IPython.Extensions.ipy_pretty` extension by Robert Kern
 
220
  provides configurable pretty-printing.
 
221
 
 
222
* Many improvements to the :command:`ipython-wx` standalone WX-based IPython
 
223
  application by Laurent Dufréchou.  It can optionally run in a thread, and
 
224
  this can be toggled at runtime (allowing the loading of Matplotlib in a
 
225
  running session without ill effects).
 
226
 
 
227
* IPython includes a copy of Steven Bethard's argparse_ in the
 
228
  :mod:`IPython.external` package, so we can use it internally and it is also
 
229
  available to any IPython user.  By installing it in this manner, we ensure
 
230
  zero conflicts with any system-wide installation you may already have while
 
231
  minimizing external dependencies for new users.  In IPython 0.10, We ship
 
232
  argparse version 1.0.
 
233
 
 
234
* An improved and much more robust test suite, that runs groups of tests in
 
235
  separate subprocesses using either Nose or Twisted's :command:`trial` runner
 
236
  to ensure proper management of Twisted-using code.  The test suite degrades
 
237
  gracefully if optional dependencies are not available, so that the
 
238
  :command:`iptest` command can be run with only Nose installed and nothing
 
239
  else.  We also have more and cleaner test decorators to better select tests
 
240
  depending on runtime conditions, do setup/teardown, etc.
 
241
 
 
242
* The new ipcluster now has a fully working ssh mode that should work on
 
243
  Linux, Unix and OS X.  Thanks to Vishal Vatsa for implementing this!
 
244
 
 
245
* The wonderful TextMate editor can now be used with %edit on OS X.  Thanks
 
246
  to Matt Foster for this patch.
 
247
 
 
248
* The documentation regarding parallel uses of IPython, including MPI and PBS,
 
249
  has been significantly updated and improved.
 
250
 
 
251
* The developer guidelines in the documentation have been updated to explain
 
252
  our workflow using :command:`bzr` and Launchpad.
 
253
  
 
254
* Fully refactored :command:`ipcluster` command line program for starting
 
255
  IPython clusters.  This new version is a complete rewrite and 1) is fully
 
256
  cross platform (we now use Twisted's process management), 2) has much
 
257
  improved performance, 3) uses subcommands for different types of clusters, 4)
 
258
  uses argparse for parsing command line options, 5) has better support for
 
259
  starting clusters using :command:`mpirun`, 6) has experimental support for
 
260
  starting engines using PBS.  It can also reuse FURL files, by appropriately
 
261
  passing options to its subcommands.  However, this new version of ipcluster
 
262
  should be considered a technology preview.  We plan on changing the API in
 
263
  significant ways before it is final.
 
264
 
 
265
* Full description of the security model added to the docs.
 
266
 
 
267
* cd completer: show bookmarks if no other completions are available.
 
268
 
 
269
* sh profile: easy way to give 'title' to prompt: assign to variable
 
270
  '_prompt_title'. It looks like this::
 
271
      
 
272
        [~]|1> _prompt_title = 'sudo!'
 
273
        sudo![~]|2>
 
274
 
 
275
* %edit: If you do '%edit pasted_block', pasted_block variable gets updated
 
276
  with new data (so repeated editing makes sense)
 
277
 
 
278
.. _Numpy Documentation Standard: http://projects.scipy.org/numpy/wiki/CodingStyleGuidelines#docstring-standard
 
279
 
 
280
.. _argparse: http://code.google.com/p/argparse/
 
281
 
 
282
Bug fixes
 
283
---------
 
284
 
 
285
* Fix #368719, removed top-level debian/ directory to make the job of Debian
 
286
  packagers easier.
 
287
  
 
288
* Fix #291143 by including man pages contributed by Stephan Peijnik from the
 
289
  Debian project.
 
290
 
 
291
* Fix #358202, effectively a race condition, by properly synchronizing file
 
292
  creation at cluster startup time.
 
293
 
 
294
* `%timeit` now handles correctly functions that take a long time to execute
 
295
  even the first time, by not repeating them.
 
296
 
 
297
* Fix #239054, releasing of references after exiting.
 
298
 
 
299
* Fix #341726, thanks to Alexander Clausen.
 
300
 
 
301
* Fix #269966.  This long-standing and very difficult bug (which is actually a
 
302
  problem in Python itself) meant long-running sessions would inevitably grow
 
303
  in memory size, often with catastrophic consequences if users had large
 
304
  objects in their scripts.  Now, using `%run` repeatedly should not cause any
 
305
  memory leaks.  Special thanks to John Hunter and Sameer D'Costa for their
 
306
  help with this bug.
 
307
 
 
308
* Fix #295371, bug in `%history`.
 
309
 
 
310
* Improved support for py2exe.
 
311
 
 
312
* Fix #270856: IPython hangs with PyGTK
 
313
 
 
314
* Fix #270998: A magic with no docstring breaks the '%magic magic'
 
315
 
 
316
* fix #271684: -c startup commands screw up raw vs. native history
 
317
 
 
318
* Numerous bugs on Windows with the new ipcluster have been fixed.
 
319
 
 
320
* The ipengine and ipcontroller scripts now handle missing furl files
 
321
  more gracefully by giving better error messages.
 
322
 
 
323
* %rehashx: Aliases no longer contain dots. python3.0 binary
 
324
  will create alias python30. Fixes:
 
325
  #259716 "commands with dots in them don't work"
 
326
 
 
327
* %cpaste: %cpaste -r repeats the last pasted block.
 
328
  The block is assigned to pasted_block even if code
 
329
  raises exception.
 
330
 
 
331
* Bug #274067 'The code in get_home_dir is broken for py2exe' was
 
332
  fixed.
 
333
 
 
334
* Many other small bug fixes not listed here by number (see the bzr log for
 
335
  more info).
 
336
  
 
337
Backwards incompatible changes
 
338
------------------------------
 
339
 
 
340
* `ipykit` and related files were unmaintained and have been removed.
 
341
 
 
342
* The :func:`IPython.genutils.doctest_reload` does not actually call
 
343
  `reload(doctest)` anymore, as this was causing many problems with the test
 
344
  suite.  It still resets `doctest.master` to None.
 
345
 
 
346
* While we have not deliberately broken Python 2.4 compatibility, only minor
 
347
  testing was done with Python 2.4, while 2.5 and 2.6 were fully tested.  But
 
348
  if you encounter problems with 2.4, please do report them as bugs.
 
349
 
 
350
* The :command:`ipcluster` now requires a mode argument; for example to start a
 
351
  cluster on the local machine with 4 engines, you must now type::
 
352
 
 
353
    $ ipcluster local -n 4
 
354
 
 
355
* The controller now has a ``-r`` flag that needs to be used if you want to
 
356
  reuse existing furl files.  Otherwise they are deleted (the default).
 
357
 
 
358
* Remove ipy_leo.py. You can use :command:`easy_install ipython-extension` to
 
359
  get it.  (done to decouple it from ipython release cycle)
 
360