##// END OF EJS Templates
Fix typo in 0.10 changes doc...
MinRK -
Show More
@@ -1,641 +1,641 b''
1 .. Developers should add in this file, during each release cycle, information
1 .. Developers should add in this file, during each release cycle, information
2 .. about important changes they've made, in a summary format that's meant for
2 .. about important changes they've made, in a summary format that's meant for
3 .. end users. For each release we normally have three sections: features, bug
3 .. end users. For each release we normally have three sections: features, bug
4 .. fixes and api breakage.
4 .. fixes and api breakage.
5 .. Please remember to credit the authors of the contributions by name,
5 .. Please remember to credit the authors of the contributions by name,
6 .. especially when they are new users or developers who do not regularly
6 .. especially when they are new users or developers who do not regularly
7 .. participate in IPython's development.
7 .. participate in IPython's development.
8
8
9 .. _changes:
9 .. _changes:
10
10
11 ==========
11 ==========
12 What's new
12 What's new
13 ==========
13 ==========
14
14
15 Release 0.10.1
15 Release 0.10.1
16 ==============
16 ==============
17
17
18 IPython 0.10.1 was released October 11, 2010, over a year after version 0.10.
18 IPython 0.10.1 was released October 11, 2010, over a year after version 0.10.
19 This is mostly a bugfix release, since after version 0.10 was released, the
19 This is mostly a bugfix release, since after version 0.10 was released, the
20 development team's energy has been focused on the 0.11 series. We have
20 development team's energy has been focused on the 0.11 series. We have
21 nonetheless tried to backport what fixes we could into 0.10.1, as it remains
21 nonetheless tried to backport what fixes we could into 0.10.1, as it remains
22 the stable series that many users have in production systems they rely on.
22 the stable series that many users have in production systems they rely on.
23
23
24 Since the 0.11 series changes many APIs in backwards-incompatible ways, we are
24 Since the 0.11 series changes many APIs in backwards-incompatible ways, we are
25 willing to continue maintaining the 0.10.x series. We don't really have time
25 willing to continue maintaining the 0.10.x series. We don't really have time
26 to actively write new code for 0.10.x, but we are happy to accept patches and
26 to actively write new code for 0.10.x, but we are happy to accept patches and
27 pull requests on the IPython `github site`_. If sufficient contributions are
27 pull requests on the IPython `github site`_. If sufficient contributions are
28 made that improve 0.10.1, we will roll them into future releases. For this
28 made that improve 0.10.1, we will roll them into future releases. For this
29 purpose, we will have a branch called 0.10.2 on github, on which you can base
29 purpose, we will have a branch called 0.10.2 on github, on which you can base
30 your contributions.
30 your contributions.
31
31
32 .. _github site: http://github.com/ipython
32 .. _github site: http://github.com/ipython
33
33
34 For this release, we applied approximately 60 commits totaling a diff of over
34 For this release, we applied approximately 60 commits totaling a diff of over
35 7000 lines::
35 7000 lines::
36
36
37 (0.10.1)amirbar[dist]> git diff --oneline rel-0.10.. | wc -l
37 (0.10.1)amirbar[dist]> git diff --oneline rel-0.10.. | wc -l
38 7296
38 7296
39
39
40 Highlights of this release:
40 Highlights of this release:
41
41
42 - The only significant new feature is that IPython's parallel computing
42 - The only significant new feature is that IPython's parallel computing
43 machinery now supports natively the Sun Grid Engine and LSF schedulers. This
43 machinery now supports natively the Sun Grid Engine and LSF schedulers. This
44 work was a joint contribution from Justin Riley, Satra Ghosh and Matthieu
44 work was a joint contribution from Justin Riley, Satra Ghosh and Matthieu
45 Brucher, who put a lot of work into it. We also improved traceback handling
45 Brucher, who put a lot of work into it. We also improved traceback handling
46 in remote tasks, as well as providing better control for remote task IDs.
46 in remote tasks, as well as providing better control for remote task IDs.
47
47
48 - New IPython Sphinx directive contributed by John Hunter. You can use this
48 - New IPython Sphinx directive contributed by John Hunter. You can use this
49 directive to mark blocks in reSructuredText documents as containig IPython
49 directive to mark blocks in reSructuredText documents as containing IPython
50 syntax (including figures) and the will be executed during the build::
50 syntax (including figures) and the will be executed during the build:
51
51
52 .. ipython::
52 .. sourcecode:: ipython
53
53
54 In [2]: plt.figure() # ensure a fresh figure
54 In [2]: plt.figure() # ensure a fresh figure
55
55
56 @savefig psimple.png width=4in
56 @savefig psimple.png width=4in
57 In [3]: plt.plot([1,2,3])
57 In [3]: plt.plot([1,2,3])
58 Out[3]: [<matplotlib.lines.Line2D object at 0x9b74d8c>]
58 Out[3]: [<matplotlib.lines.Line2D object at 0x9b74d8c>]
59
59
60 - Various fixes to the standalone ipython-wx application.
60 - Various fixes to the standalone ipython-wx application.
61
61
62 - We now ship internally the excellent argparse library, graciously licensed
62 - We now ship internally the excellent argparse library, graciously licensed
63 under BSD terms by Steven Bethard. Now (2010) that argparse has become part
63 under BSD terms by Steven Bethard. Now (2010) that argparse has become part
64 of Python 2.7 this will be less of an issue, but Steven's relicensing allowed
64 of Python 2.7 this will be less of an issue, but Steven's relicensing allowed
65 us to start updating IPython to using argparse well before Python 2.7. Many
65 us to start updating IPython to using argparse well before Python 2.7. Many
66 thanks!
66 thanks!
67
67
68 - Robustness improvements so that IPython doesn't crash if the readline library
68 - Robustness improvements so that IPython doesn't crash if the readline library
69 is absent (though obviously a lot of functionality that requires readline
69 is absent (though obviously a lot of functionality that requires readline
70 will not be available).
70 will not be available).
71
71
72 - Improvements to tab completion in Emacs with Python 2.6.
72 - Improvements to tab completion in Emacs with Python 2.6.
73
73
74 - Logging now supports timestamps (see ``%logstart?`` for full details).
74 - Logging now supports timestamps (see ``%logstart?`` for full details).
75
75
76 - A long-standing and quite annoying bug where parentheses would be added to
76 - A long-standing and quite annoying bug where parentheses would be added to
77 ``print`` statements, under Python 2.5 and 2.6, was finally fixed.
77 ``print`` statements, under Python 2.5 and 2.6, was finally fixed.
78
78
79 - Improved handling of libreadline on Apple OSX.
79 - Improved handling of libreadline on Apple OSX.
80
80
81 - Fix ``reload`` method of IPython demos, which was broken.
81 - Fix ``reload`` method of IPython demos, which was broken.
82
82
83 - Fixes for the ipipe/ibrowse system on OSX.
83 - Fixes for the ipipe/ibrowse system on OSX.
84
84
85 - Fixes for Zope profile.
85 - Fixes for Zope profile.
86
86
87 - Fix %timeit reporting when the time is longer than 1000s.
87 - Fix %timeit reporting when the time is longer than 1000s.
88
88
89 - Avoid lockups with ? or ?? in SunOS, due to a bug in termios.
89 - Avoid lockups with ? or ?? in SunOS, due to a bug in termios.
90
90
91 - The usual assortment of miscellaneous bug fixes and small improvements.
91 - The usual assortment of miscellaneous bug fixes and small improvements.
92
92
93 The following people contributed to this release (please let us know if we
93 The following people contributed to this release (please let us know if we
94 ommitted your name and we'll gladly fix this in the notes for the future):
94 ommitted your name and we'll gladly fix this in the notes for the future):
95
95
96 * Beni Cherniavsky
96 * Beni Cherniavsky
97 * Boyd Waters.
97 * Boyd Waters.
98 * David Warde-Farley
98 * David Warde-Farley
99 * Fernando Perez
99 * Fernando Perez
100 * GΓΆkhan Sever
100 * GΓΆkhan Sever
101 * John Hunter
101 * John Hunter
102 * Justin Riley
102 * Justin Riley
103 * Kiorky
103 * Kiorky
104 * Laurent Dufrechou
104 * Laurent Dufrechou
105 * Mark E. Smith
105 * Mark E. Smith
106 * Matthieu Brucher
106 * Matthieu Brucher
107 * Satrajit Ghosh
107 * Satrajit Ghosh
108 * Sebastian Busch
108 * Sebastian Busch
109 * VΓ‘clav Ε milauer
109 * VΓ‘clav Ε milauer
110
110
111
111
112 Release 0.10
112 Release 0.10
113 ============
113 ============
114
114
115 This release brings months of slow but steady development, and will be the last
115 This release brings months of slow but steady development, and will be the last
116 before a major restructuring and cleanup of IPython's internals that is already
116 before a major restructuring and cleanup of IPython's internals that is already
117 under way. For this reason, we hope that 0.10 will be a stable and robust
117 under way. For this reason, we hope that 0.10 will be a stable and robust
118 release so that while users adapt to some of the API changes that will come
118 release so that while users adapt to some of the API changes that will come
119 with the refactoring that will become IPython 0.11, they can safely use 0.10 in
119 with the refactoring that will become IPython 0.11, they can safely use 0.10 in
120 all existing projects with minimal changes (if any).
120 all existing projects with minimal changes (if any).
121
121
122 IPython 0.10 is now a medium-sized project, with roughly (as reported by David
122 IPython 0.10 is now a medium-sized project, with roughly (as reported by David
123 Wheeler's :command:`sloccount` utility) 40750 lines of Python code, and a diff
123 Wheeler's :command:`sloccount` utility) 40750 lines of Python code, and a diff
124 between 0.9.1 and this release that contains almost 28000 lines of code and
124 between 0.9.1 and this release that contains almost 28000 lines of code and
125 documentation. Our documentation, in PDF format, is a 495-page long PDF
125 documentation. Our documentation, in PDF format, is a 495-page long PDF
126 document (also available in HTML format, both generated from the same sources).
126 document (also available in HTML format, both generated from the same sources).
127
127
128 Many users and developers contributed code, features, bug reports and ideas to
128 Many users and developers contributed code, features, bug reports and ideas to
129 this release. Please do not hesitate in contacting us if we've failed to
129 this release. Please do not hesitate in contacting us if we've failed to
130 acknowledge your contribution here. In particular, for this release we have
130 acknowledge your contribution here. In particular, for this release we have
131 contribution from the following people, a mix of new and regular names (in
131 contribution from the following people, a mix of new and regular names (in
132 alphabetical order by first name):
132 alphabetical order by first name):
133
133
134 * Alexander Clausen: fix #341726.
134 * Alexander Clausen: fix #341726.
135 * Brian Granger: lots of work everywhere (features, bug fixes, etc).
135 * Brian Granger: lots of work everywhere (features, bug fixes, etc).
136 * Daniel Ashbrook: bug report on MemoryError during compilation, now fixed.
136 * Daniel Ashbrook: bug report on MemoryError during compilation, now fixed.
137 * Darren Dale: improvements to documentation build system, feedback, design
137 * Darren Dale: improvements to documentation build system, feedback, design
138 ideas.
138 ideas.
139 * Fernando Perez: various places.
139 * Fernando Perez: various places.
140 * GaΓ«l Varoquaux: core code, ipythonx GUI, design discussions, etc. Lots...
140 * GaΓ«l Varoquaux: core code, ipythonx GUI, design discussions, etc. Lots...
141 * John Hunter: suggestions, bug fixes, feedback.
141 * John Hunter: suggestions, bug fixes, feedback.
142 * Jorgen Stenarson: work on many fronts, tests, fixes, win32 support, etc.
142 * Jorgen Stenarson: work on many fronts, tests, fixes, win32 support, etc.
143 * Laurent DufrΓ©chou: many improvements to ipython-wx standalone app.
143 * Laurent DufrΓ©chou: many improvements to ipython-wx standalone app.
144 * Lukasz Pankowski: prefilter, `%edit`, demo improvements.
144 * Lukasz Pankowski: prefilter, `%edit`, demo improvements.
145 * Matt Foster: TextMate support in `%edit`.
145 * Matt Foster: TextMate support in `%edit`.
146 * Nathaniel Smith: fix #237073.
146 * Nathaniel Smith: fix #237073.
147 * Pauli Virtanen: fixes and improvements to extensions, documentation.
147 * Pauli Virtanen: fixes and improvements to extensions, documentation.
148 * Prabhu Ramachandran: improvements to `%timeit`.
148 * Prabhu Ramachandran: improvements to `%timeit`.
149 * Robert Kern: several extensions.
149 * Robert Kern: several extensions.
150 * Sameer D'Costa: help on critical bug #269966.
150 * Sameer D'Costa: help on critical bug #269966.
151 * Stephan Peijnik: feedback on Debian compliance and many man pages.
151 * Stephan Peijnik: feedback on Debian compliance and many man pages.
152 * Steven Bethard: we are now shipping his :mod:`argparse` module.
152 * Steven Bethard: we are now shipping his :mod:`argparse` module.
153 * Tom Fetherston: many improvements to :mod:`IPython.demo` module.
153 * Tom Fetherston: many improvements to :mod:`IPython.demo` module.
154 * Ville Vainio: lots of work everywhere (features, bug fixes, etc).
154 * Ville Vainio: lots of work everywhere (features, bug fixes, etc).
155 * Vishal Vasta: ssh support in ipcluster.
155 * Vishal Vasta: ssh support in ipcluster.
156 * Walter Doerwald: work on the :mod:`IPython.ipipe` system.
156 * Walter Doerwald: work on the :mod:`IPython.ipipe` system.
157
157
158 Below we give an overview of new features, bug fixes and backwards-incompatible
158 Below we give an overview of new features, bug fixes and backwards-incompatible
159 changes. For a detailed account of every change made, feel free to view the
159 changes. For a detailed account of every change made, feel free to view the
160 project log with :command:`bzr log`.
160 project log with :command:`bzr log`.
161
161
162 New features
162 New features
163 ------------
163 ------------
164
164
165 * New `%paste` magic automatically extracts current contents of clipboard and
165 * New `%paste` magic automatically extracts current contents of clipboard and
166 pastes it directly, while correctly handling code that is indented or
166 pastes it directly, while correctly handling code that is indented or
167 prepended with `>>>` or `...` python prompt markers. A very useful new
167 prepended with `>>>` or `...` python prompt markers. A very useful new
168 feature contributed by Robert Kern.
168 feature contributed by Robert Kern.
169
169
170 * IPython 'demos', created with the :mod:`IPython.demo` module, can now be
170 * IPython 'demos', created with the :mod:`IPython.demo` module, can now be
171 created from files on disk or strings in memory. Other fixes and
171 created from files on disk or strings in memory. Other fixes and
172 improvements to the demo system, by Tom Fetherston.
172 improvements to the demo system, by Tom Fetherston.
173
173
174 * Added :func:`find_cmd` function to :mod:`IPython.platutils` module, to find
174 * Added :func:`find_cmd` function to :mod:`IPython.platutils` module, to find
175 commands in a cross-platform manner.
175 commands in a cross-platform manner.
176
176
177 * Many improvements and fixes to GaΓ«l Varoquaux's :command:`ipythonx`, a
177 * Many improvements and fixes to GaΓ«l Varoquaux's :command:`ipythonx`, a
178 WX-based lightweight IPython instance that can be easily embedded in other WX
178 WX-based lightweight IPython instance that can be easily embedded in other WX
179 applications. These improvements have made it possible to now have an
179 applications. These improvements have made it possible to now have an
180 embedded IPython in Mayavi and other tools.
180 embedded IPython in Mayavi and other tools.
181
181
182 * :class:`MultiengineClient` objects now have a :meth:`benchmark` method.
182 * :class:`MultiengineClient` objects now have a :meth:`benchmark` method.
183
183
184 * The manual now includes a full set of auto-generated API documents from the
184 * The manual now includes a full set of auto-generated API documents from the
185 code sources, using Sphinx and some of our own support code. We are now
185 code sources, using Sphinx and some of our own support code. We are now
186 using the `Numpy Documentation Standard`_ for all docstrings, and we have
186 using the `Numpy Documentation Standard`_ for all docstrings, and we have
187 tried to update as many existing ones as possible to this format.
187 tried to update as many existing ones as possible to this format.
188
188
189 * The new :mod:`IPython.Extensions.ipy_pretty` extension by Robert Kern
189 * The new :mod:`IPython.Extensions.ipy_pretty` extension by Robert Kern
190 provides configurable pretty-printing.
190 provides configurable pretty-printing.
191
191
192 * Many improvements to the :command:`ipython-wx` standalone WX-based IPython
192 * Many improvements to the :command:`ipython-wx` standalone WX-based IPython
193 application by Laurent DufrΓ©chou. It can optionally run in a thread, and
193 application by Laurent DufrΓ©chou. It can optionally run in a thread, and
194 this can be toggled at runtime (allowing the loading of Matplotlib in a
194 this can be toggled at runtime (allowing the loading of Matplotlib in a
195 running session without ill effects).
195 running session without ill effects).
196
196
197 * IPython includes a copy of Steven Bethard's argparse_ in the
197 * IPython includes a copy of Steven Bethard's argparse_ in the
198 :mod:`IPython.external` package, so we can use it internally and it is also
198 :mod:`IPython.external` package, so we can use it internally and it is also
199 available to any IPython user. By installing it in this manner, we ensure
199 available to any IPython user. By installing it in this manner, we ensure
200 zero conflicts with any system-wide installation you may already have while
200 zero conflicts with any system-wide installation you may already have while
201 minimizing external dependencies for new users. In IPython 0.10, We ship
201 minimizing external dependencies for new users. In IPython 0.10, We ship
202 argparse version 1.0.
202 argparse version 1.0.
203
203
204 * An improved and much more robust test suite, that runs groups of tests in
204 * An improved and much more robust test suite, that runs groups of tests in
205 separate subprocesses using either Nose or Twisted's :command:`trial` runner
205 separate subprocesses using either Nose or Twisted's :command:`trial` runner
206 to ensure proper management of Twisted-using code. The test suite degrades
206 to ensure proper management of Twisted-using code. The test suite degrades
207 gracefully if optional dependencies are not available, so that the
207 gracefully if optional dependencies are not available, so that the
208 :command:`iptest` command can be run with only Nose installed and nothing
208 :command:`iptest` command can be run with only Nose installed and nothing
209 else. We also have more and cleaner test decorators to better select tests
209 else. We also have more and cleaner test decorators to better select tests
210 depending on runtime conditions, do setup/teardown, etc.
210 depending on runtime conditions, do setup/teardown, etc.
211
211
212 * The new ipcluster now has a fully working ssh mode that should work on
212 * The new ipcluster now has a fully working ssh mode that should work on
213 Linux, Unix and OS X. Thanks to Vishal Vatsa for implementing this!
213 Linux, Unix and OS X. Thanks to Vishal Vatsa for implementing this!
214
214
215 * The wonderful TextMate editor can now be used with %edit on OS X. Thanks
215 * The wonderful TextMate editor can now be used with %edit on OS X. Thanks
216 to Matt Foster for this patch.
216 to Matt Foster for this patch.
217
217
218 * The documentation regarding parallel uses of IPython, including MPI and PBS,
218 * The documentation regarding parallel uses of IPython, including MPI and PBS,
219 has been significantly updated and improved.
219 has been significantly updated and improved.
220
220
221 * The developer guidelines in the documentation have been updated to explain
221 * The developer guidelines in the documentation have been updated to explain
222 our workflow using :command:`bzr` and Launchpad.
222 our workflow using :command:`bzr` and Launchpad.
223
223
224 * Fully refactored :command:`ipcluster` command line program for starting
224 * Fully refactored :command:`ipcluster` command line program for starting
225 IPython clusters. This new version is a complete rewrite and 1) is fully
225 IPython clusters. This new version is a complete rewrite and 1) is fully
226 cross platform (we now use Twisted's process management), 2) has much
226 cross platform (we now use Twisted's process management), 2) has much
227 improved performance, 3) uses subcommands for different types of clusters, 4)
227 improved performance, 3) uses subcommands for different types of clusters, 4)
228 uses argparse for parsing command line options, 5) has better support for
228 uses argparse for parsing command line options, 5) has better support for
229 starting clusters using :command:`mpirun`, 6) has experimental support for
229 starting clusters using :command:`mpirun`, 6) has experimental support for
230 starting engines using PBS. It can also reuse FURL files, by appropriately
230 starting engines using PBS. It can also reuse FURL files, by appropriately
231 passing options to its subcommands. However, this new version of ipcluster
231 passing options to its subcommands. However, this new version of ipcluster
232 should be considered a technology preview. We plan on changing the API in
232 should be considered a technology preview. We plan on changing the API in
233 significant ways before it is final.
233 significant ways before it is final.
234
234
235 * Full description of the security model added to the docs.
235 * Full description of the security model added to the docs.
236
236
237 * cd completer: show bookmarks if no other completions are available.
237 * cd completer: show bookmarks if no other completions are available.
238
238
239 * sh profile: easy way to give 'title' to prompt: assign to variable
239 * sh profile: easy way to give 'title' to prompt: assign to variable
240 '_prompt_title'. It looks like this::
240 '_prompt_title'. It looks like this::
241
241
242 [~]|1> _prompt_title = 'sudo!'
242 [~]|1> _prompt_title = 'sudo!'
243 sudo![~]|2>
243 sudo![~]|2>
244
244
245 * %edit: If you do '%edit pasted_block', pasted_block variable gets updated
245 * %edit: If you do '%edit pasted_block', pasted_block variable gets updated
246 with new data (so repeated editing makes sense)
246 with new data (so repeated editing makes sense)
247
247
248 .. _Numpy Documentation Standard: http://projects.scipy.org/numpy/wiki/CodingStyleGuidelines#docstring-standard
248 .. _Numpy Documentation Standard: http://projects.scipy.org/numpy/wiki/CodingStyleGuidelines#docstring-standard
249
249
250 .. _argparse: http://code.google.com/p/argparse/
250 .. _argparse: http://code.google.com/p/argparse/
251
251
252 Bug fixes
252 Bug fixes
253 ---------
253 ---------
254
254
255 * Fix #368719, removed top-level debian/ directory to make the job of Debian
255 * Fix #368719, removed top-level debian/ directory to make the job of Debian
256 packagers easier.
256 packagers easier.
257
257
258 * Fix #291143 by including man pages contributed by Stephan Peijnik from the
258 * Fix #291143 by including man pages contributed by Stephan Peijnik from the
259 Debian project.
259 Debian project.
260
260
261 * Fix #358202, effectively a race condition, by properly synchronizing file
261 * Fix #358202, effectively a race condition, by properly synchronizing file
262 creation at cluster startup time.
262 creation at cluster startup time.
263
263
264 * `%timeit` now handles correctly functions that take a long time to execute
264 * `%timeit` now handles correctly functions that take a long time to execute
265 even the first time, by not repeating them.
265 even the first time, by not repeating them.
266
266
267 * Fix #239054, releasing of references after exiting.
267 * Fix #239054, releasing of references after exiting.
268
268
269 * Fix #341726, thanks to Alexander Clausen.
269 * Fix #341726, thanks to Alexander Clausen.
270
270
271 * Fix #269966. This long-standing and very difficult bug (which is actually a
271 * Fix #269966. This long-standing and very difficult bug (which is actually a
272 problem in Python itself) meant long-running sessions would inevitably grow
272 problem in Python itself) meant long-running sessions would inevitably grow
273 in memory size, often with catastrophic consequences if users had large
273 in memory size, often with catastrophic consequences if users had large
274 objects in their scripts. Now, using `%run` repeatedly should not cause any
274 objects in their scripts. Now, using `%run` repeatedly should not cause any
275 memory leaks. Special thanks to John Hunter and Sameer D'Costa for their
275 memory leaks. Special thanks to John Hunter and Sameer D'Costa for their
276 help with this bug.
276 help with this bug.
277
277
278 * Fix #295371, bug in `%history`.
278 * Fix #295371, bug in `%history`.
279
279
280 * Improved support for py2exe.
280 * Improved support for py2exe.
281
281
282 * Fix #270856: IPython hangs with PyGTK
282 * Fix #270856: IPython hangs with PyGTK
283
283
284 * Fix #270998: A magic with no docstring breaks the '%magic magic'
284 * Fix #270998: A magic with no docstring breaks the '%magic magic'
285
285
286 * fix #271684: -c startup commands screw up raw vs. native history
286 * fix #271684: -c startup commands screw up raw vs. native history
287
287
288 * Numerous bugs on Windows with the new ipcluster have been fixed.
288 * Numerous bugs on Windows with the new ipcluster have been fixed.
289
289
290 * The ipengine and ipcontroller scripts now handle missing furl files
290 * The ipengine and ipcontroller scripts now handle missing furl files
291 more gracefully by giving better error messages.
291 more gracefully by giving better error messages.
292
292
293 * %rehashx: Aliases no longer contain dots. python3.0 binary
293 * %rehashx: Aliases no longer contain dots. python3.0 binary
294 will create alias python30. Fixes:
294 will create alias python30. Fixes:
295 #259716 "commands with dots in them don't work"
295 #259716 "commands with dots in them don't work"
296
296
297 * %cpaste: %cpaste -r repeats the last pasted block.
297 * %cpaste: %cpaste -r repeats the last pasted block.
298 The block is assigned to pasted_block even if code
298 The block is assigned to pasted_block even if code
299 raises exception.
299 raises exception.
300
300
301 * Bug #274067 'The code in get_home_dir is broken for py2exe' was
301 * Bug #274067 'The code in get_home_dir is broken for py2exe' was
302 fixed.
302 fixed.
303
303
304 * Many other small bug fixes not listed here by number (see the bzr log for
304 * Many other small bug fixes not listed here by number (see the bzr log for
305 more info).
305 more info).
306
306
307 Backwards incompatible changes
307 Backwards incompatible changes
308 ------------------------------
308 ------------------------------
309
309
310 * `ipykit` and related files were unmaintained and have been removed.
310 * `ipykit` and related files were unmaintained and have been removed.
311
311
312 * The :func:`IPython.genutils.doctest_reload` does not actually call
312 * The :func:`IPython.genutils.doctest_reload` does not actually call
313 `reload(doctest)` anymore, as this was causing many problems with the test
313 `reload(doctest)` anymore, as this was causing many problems with the test
314 suite. It still resets `doctest.master` to None.
314 suite. It still resets `doctest.master` to None.
315
315
316 * While we have not deliberately broken Python 2.4 compatibility, only minor
316 * While we have not deliberately broken Python 2.4 compatibility, only minor
317 testing was done with Python 2.4, while 2.5 and 2.6 were fully tested. But
317 testing was done with Python 2.4, while 2.5 and 2.6 were fully tested. But
318 if you encounter problems with 2.4, please do report them as bugs.
318 if you encounter problems with 2.4, please do report them as bugs.
319
319
320 * The :command:`ipcluster` now requires a mode argument; for example to start a
320 * The :command:`ipcluster` now requires a mode argument; for example to start a
321 cluster on the local machine with 4 engines, you must now type::
321 cluster on the local machine with 4 engines, you must now type::
322
322
323 $ ipcluster local -n 4
323 $ ipcluster local -n 4
324
324
325 * The controller now has a ``-r`` flag that needs to be used if you want to
325 * The controller now has a ``-r`` flag that needs to be used if you want to
326 reuse existing furl files. Otherwise they are deleted (the default).
326 reuse existing furl files. Otherwise they are deleted (the default).
327
327
328 * Remove ipy_leo.py. You can use :command:`easy_install ipython-extension` to
328 * Remove ipy_leo.py. You can use :command:`easy_install ipython-extension` to
329 get it. (done to decouple it from ipython release cycle)
329 get it. (done to decouple it from ipython release cycle)
330
330
331
331
332 Release 0.9.1
332 Release 0.9.1
333 =============
333 =============
334
334
335 This release was quickly made to restore compatibility with Python 2.4, which
335 This release was quickly made to restore compatibility with Python 2.4, which
336 version 0.9 accidentally broke. No new features were introduced, other than
336 version 0.9 accidentally broke. No new features were introduced, other than
337 some additional testing support for internal use.
337 some additional testing support for internal use.
338
338
339
339
340 Release 0.9
340 Release 0.9
341 ===========
341 ===========
342
342
343 New features
343 New features
344 ------------
344 ------------
345
345
346 * All furl files and security certificates are now put in a read-only
346 * All furl files and security certificates are now put in a read-only
347 directory named ~./ipython/security.
347 directory named ~./ipython/security.
348
348
349 * A single function :func:`get_ipython_dir`, in :mod:`IPython.genutils` that
349 * A single function :func:`get_ipython_dir`, in :mod:`IPython.genutils` that
350 determines the user's IPython directory in a robust manner.
350 determines the user's IPython directory in a robust manner.
351
351
352 * Laurent's WX application has been given a top-level script called
352 * Laurent's WX application has been given a top-level script called
353 ipython-wx, and it has received numerous fixes. We expect this code to be
353 ipython-wx, and it has received numerous fixes. We expect this code to be
354 architecturally better integrated with Gael's WX 'ipython widget' over the
354 architecturally better integrated with Gael's WX 'ipython widget' over the
355 next few releases.
355 next few releases.
356
356
357 * The Editor synchronization work by Vivian De Smedt has been merged in. This
357 * The Editor synchronization work by Vivian De Smedt has been merged in. This
358 code adds a number of new editor hooks to synchronize with editors under
358 code adds a number of new editor hooks to synchronize with editors under
359 Windows.
359 Windows.
360
360
361 * A new, still experimental but highly functional, WX shell by Gael Varoquaux.
361 * A new, still experimental but highly functional, WX shell by Gael Varoquaux.
362 This work was sponsored by Enthought, and while it's still very new, it is
362 This work was sponsored by Enthought, and while it's still very new, it is
363 based on a more cleanly organized arhictecture of the various IPython
363 based on a more cleanly organized arhictecture of the various IPython
364 components. We will continue to develop this over the next few releases as a
364 components. We will continue to develop this over the next few releases as a
365 model for GUI components that use IPython.
365 model for GUI components that use IPython.
366
366
367 * Another GUI frontend, Cocoa based (Cocoa is the OSX native GUI framework),
367 * Another GUI frontend, Cocoa based (Cocoa is the OSX native GUI framework),
368 authored by Barry Wark. Currently the WX and the Cocoa ones have slightly
368 authored by Barry Wark. Currently the WX and the Cocoa ones have slightly
369 different internal organizations, but the whole team is working on finding
369 different internal organizations, but the whole team is working on finding
370 what the right abstraction points are for a unified codebase.
370 what the right abstraction points are for a unified codebase.
371
371
372 * As part of the frontend work, Barry Wark also implemented an experimental
372 * As part of the frontend work, Barry Wark also implemented an experimental
373 event notification system that various ipython components can use. In the
373 event notification system that various ipython components can use. In the
374 next release the implications and use patterns of this system regarding the
374 next release the implications and use patterns of this system regarding the
375 various GUI options will be worked out.
375 various GUI options will be worked out.
376
376
377 * IPython finally has a full test system, that can test docstrings with
377 * IPython finally has a full test system, that can test docstrings with
378 IPython-specific functionality. There are still a few pieces missing for it
378 IPython-specific functionality. There are still a few pieces missing for it
379 to be widely accessible to all users (so they can run the test suite at any
379 to be widely accessible to all users (so they can run the test suite at any
380 time and report problems), but it now works for the developers. We are
380 time and report problems), but it now works for the developers. We are
381 working hard on continuing to improve it, as this was probably IPython's
381 working hard on continuing to improve it, as this was probably IPython's
382 major Achilles heel (the lack of proper test coverage made it effectively
382 major Achilles heel (the lack of proper test coverage made it effectively
383 impossible to do large-scale refactoring). The full test suite can now
383 impossible to do large-scale refactoring). The full test suite can now
384 be run using the :command:`iptest` command line program.
384 be run using the :command:`iptest` command line program.
385
385
386 * The notion of a task has been completely reworked. An `ITask` interface has
386 * The notion of a task has been completely reworked. An `ITask` interface has
387 been created. This interface defines the methods that tasks need to
387 been created. This interface defines the methods that tasks need to
388 implement. These methods are now responsible for things like submitting
388 implement. These methods are now responsible for things like submitting
389 tasks and processing results. There are two basic task types:
389 tasks and processing results. There are two basic task types:
390 :class:`IPython.kernel.task.StringTask` (this is the old `Task` object, but
390 :class:`IPython.kernel.task.StringTask` (this is the old `Task` object, but
391 renamed) and the new :class:`IPython.kernel.task.MapTask`, which is based on
391 renamed) and the new :class:`IPython.kernel.task.MapTask`, which is based on
392 a function.
392 a function.
393
393
394 * A new interface, :class:`IPython.kernel.mapper.IMapper` has been defined to
394 * A new interface, :class:`IPython.kernel.mapper.IMapper` has been defined to
395 standardize the idea of a `map` method. This interface has a single `map`
395 standardize the idea of a `map` method. This interface has a single `map`
396 method that has the same syntax as the built-in `map`. We have also defined
396 method that has the same syntax as the built-in `map`. We have also defined
397 a `mapper` factory interface that creates objects that implement
397 a `mapper` factory interface that creates objects that implement
398 :class:`IPython.kernel.mapper.IMapper` for different controllers. Both the
398 :class:`IPython.kernel.mapper.IMapper` for different controllers. Both the
399 multiengine and task controller now have mapping capabilties.
399 multiengine and task controller now have mapping capabilties.
400
400
401 * The parallel function capabilities have been reworks. The major changes are
401 * The parallel function capabilities have been reworks. The major changes are
402 that i) there is now an `@parallel` magic that creates parallel functions,
402 that i) there is now an `@parallel` magic that creates parallel functions,
403 ii) the syntax for mulitple variable follows that of `map`, iii) both the
403 ii) the syntax for mulitple variable follows that of `map`, iii) both the
404 multiengine and task controller now have a parallel function implementation.
404 multiengine and task controller now have a parallel function implementation.
405
405
406 * All of the parallel computing capabilities from `ipython1-dev` have been
406 * All of the parallel computing capabilities from `ipython1-dev` have been
407 merged into IPython proper. This resulted in the following new subpackages:
407 merged into IPython proper. This resulted in the following new subpackages:
408 :mod:`IPython.kernel`, :mod:`IPython.kernel.core`, :mod:`IPython.config`,
408 :mod:`IPython.kernel`, :mod:`IPython.kernel.core`, :mod:`IPython.config`,
409 :mod:`IPython.tools` and :mod:`IPython.testing`.
409 :mod:`IPython.tools` and :mod:`IPython.testing`.
410
410
411 * As part of merging in the `ipython1-dev` stuff, the `setup.py` script and
411 * As part of merging in the `ipython1-dev` stuff, the `setup.py` script and
412 friends have been completely refactored. Now we are checking for
412 friends have been completely refactored. Now we are checking for
413 dependencies using the approach that matplotlib uses.
413 dependencies using the approach that matplotlib uses.
414
414
415 * The documentation has been completely reorganized to accept the
415 * The documentation has been completely reorganized to accept the
416 documentation from `ipython1-dev`.
416 documentation from `ipython1-dev`.
417
417
418 * We have switched to using Foolscap for all of our network protocols in
418 * We have switched to using Foolscap for all of our network protocols in
419 :mod:`IPython.kernel`. This gives us secure connections that are both
419 :mod:`IPython.kernel`. This gives us secure connections that are both
420 encrypted and authenticated.
420 encrypted and authenticated.
421
421
422 * We have a brand new `COPYING.txt` files that describes the IPython license
422 * We have a brand new `COPYING.txt` files that describes the IPython license
423 and copyright. The biggest change is that we are putting "The IPython
423 and copyright. The biggest change is that we are putting "The IPython
424 Development Team" as the copyright holder. We give more details about
424 Development Team" as the copyright holder. We give more details about
425 exactly what this means in this file. All developer should read this and use
425 exactly what this means in this file. All developer should read this and use
426 the new banner in all IPython source code files.
426 the new banner in all IPython source code files.
427
427
428 * sh profile: ./foo runs foo as system command, no need to do !./foo anymore
428 * sh profile: ./foo runs foo as system command, no need to do !./foo anymore
429
429
430 * String lists now support ``sort(field, nums = True)`` method (to easily sort
430 * String lists now support ``sort(field, nums = True)`` method (to easily sort
431 system command output). Try it with ``a = !ls -l ; a.sort(1, nums=1)``.
431 system command output). Try it with ``a = !ls -l ; a.sort(1, nums=1)``.
432
432
433 * '%cpaste foo' now assigns the pasted block as string list, instead of string
433 * '%cpaste foo' now assigns the pasted block as string list, instead of string
434
434
435 * The ipcluster script now run by default with no security. This is done
435 * The ipcluster script now run by default with no security. This is done
436 because the main usage of the script is for starting things on localhost.
436 because the main usage of the script is for starting things on localhost.
437 Eventually when ipcluster is able to start things on other hosts, we will put
437 Eventually when ipcluster is able to start things on other hosts, we will put
438 security back.
438 security back.
439
439
440 * 'cd --foo' searches directory history for string foo, and jumps to that dir.
440 * 'cd --foo' searches directory history for string foo, and jumps to that dir.
441 Last part of dir name is checked first. If no matches for that are found,
441 Last part of dir name is checked first. If no matches for that are found,
442 look at the whole path.
442 look at the whole path.
443
443
444
444
445 Bug fixes
445 Bug fixes
446 ---------
446 ---------
447
447
448 * The Windows installer has been fixed. Now all IPython scripts have ``.bat``
448 * The Windows installer has been fixed. Now all IPython scripts have ``.bat``
449 versions created. Also, the Start Menu shortcuts have been updated.
449 versions created. Also, the Start Menu shortcuts have been updated.
450
450
451 * The colors escapes in the multiengine client are now turned off on win32 as
451 * The colors escapes in the multiengine client are now turned off on win32 as
452 they don't print correctly.
452 they don't print correctly.
453
453
454 * The :mod:`IPython.kernel.scripts.ipengine` script was exec'ing
454 * The :mod:`IPython.kernel.scripts.ipengine` script was exec'ing
455 mpi_import_statement incorrectly, which was leading the engine to crash when
455 mpi_import_statement incorrectly, which was leading the engine to crash when
456 mpi was enabled.
456 mpi was enabled.
457
457
458 * A few subpackages had missing ``__init__.py`` files.
458 * A few subpackages had missing ``__init__.py`` files.
459
459
460 * The documentation is only created if Sphinx is found. Previously, the
460 * The documentation is only created if Sphinx is found. Previously, the
461 ``setup.py`` script would fail if it was missing.
461 ``setup.py`` script would fail if it was missing.
462
462
463 * Greedy ``cd`` completion has been disabled again (it was enabled in 0.8.4) as
463 * Greedy ``cd`` completion has been disabled again (it was enabled in 0.8.4) as
464 it caused problems on certain platforms.
464 it caused problems on certain platforms.
465
465
466
466
467 Backwards incompatible changes
467 Backwards incompatible changes
468 ------------------------------
468 ------------------------------
469
469
470 * The ``clusterfile`` options of the :command:`ipcluster` command has been
470 * The ``clusterfile`` options of the :command:`ipcluster` command has been
471 removed as it was not working and it will be replaced soon by something much
471 removed as it was not working and it will be replaced soon by something much
472 more robust.
472 more robust.
473
473
474 * The :mod:`IPython.kernel` configuration now properly find the user's
474 * The :mod:`IPython.kernel` configuration now properly find the user's
475 IPython directory.
475 IPython directory.
476
476
477 * In ipapi, the :func:`make_user_ns` function has been replaced with
477 * In ipapi, the :func:`make_user_ns` function has been replaced with
478 :func:`make_user_namespaces`, to support dict subclasses in namespace
478 :func:`make_user_namespaces`, to support dict subclasses in namespace
479 creation.
479 creation.
480
480
481 * :class:`IPython.kernel.client.Task` has been renamed
481 * :class:`IPython.kernel.client.Task` has been renamed
482 :class:`IPython.kernel.client.StringTask` to make way for new task types.
482 :class:`IPython.kernel.client.StringTask` to make way for new task types.
483
483
484 * The keyword argument `style` has been renamed `dist` in `scatter`, `gather`
484 * The keyword argument `style` has been renamed `dist` in `scatter`, `gather`
485 and `map`.
485 and `map`.
486
486
487 * Renamed the values that the rename `dist` keyword argument can have from
487 * Renamed the values that the rename `dist` keyword argument can have from
488 `'basic'` to `'b'`.
488 `'basic'` to `'b'`.
489
489
490 * IPython has a larger set of dependencies if you want all of its capabilities.
490 * IPython has a larger set of dependencies if you want all of its capabilities.
491 See the `setup.py` script for details.
491 See the `setup.py` script for details.
492
492
493 * The constructors for :class:`IPython.kernel.client.MultiEngineClient` and
493 * The constructors for :class:`IPython.kernel.client.MultiEngineClient` and
494 :class:`IPython.kernel.client.TaskClient` no longer take the (ip,port) tuple.
494 :class:`IPython.kernel.client.TaskClient` no longer take the (ip,port) tuple.
495 Instead they take the filename of a file that contains the FURL for that
495 Instead they take the filename of a file that contains the FURL for that
496 client. If the FURL file is in your IPYTHONDIR, it will be found automatically
496 client. If the FURL file is in your IPYTHONDIR, it will be found automatically
497 and the constructor can be left empty.
497 and the constructor can be left empty.
498
498
499 * The asynchronous clients in :mod:`IPython.kernel.asyncclient` are now created
499 * The asynchronous clients in :mod:`IPython.kernel.asyncclient` are now created
500 using the factory functions :func:`get_multiengine_client` and
500 using the factory functions :func:`get_multiengine_client` and
501 :func:`get_task_client`. These return a `Deferred` to the actual client.
501 :func:`get_task_client`. These return a `Deferred` to the actual client.
502
502
503 * The command line options to `ipcontroller` and `ipengine` have changed to
503 * The command line options to `ipcontroller` and `ipengine` have changed to
504 reflect the new Foolscap network protocol and the FURL files. Please see the
504 reflect the new Foolscap network protocol and the FURL files. Please see the
505 help for these scripts for details.
505 help for these scripts for details.
506
506
507 * The configuration files for the kernel have changed because of the Foolscap
507 * The configuration files for the kernel have changed because of the Foolscap
508 stuff. If you were using custom config files before, you should delete them
508 stuff. If you were using custom config files before, you should delete them
509 and regenerate new ones.
509 and regenerate new ones.
510
510
511 Changes merged in from IPython1
511 Changes merged in from IPython1
512 -------------------------------
512 -------------------------------
513
513
514 New features
514 New features
515 ............
515 ............
516
516
517 * Much improved ``setup.py`` and ``setupegg.py`` scripts. Because Twisted and
517 * Much improved ``setup.py`` and ``setupegg.py`` scripts. Because Twisted and
518 zope.interface are now easy installable, we can declare them as dependencies
518 zope.interface are now easy installable, we can declare them as dependencies
519 in our setupegg.py script.
519 in our setupegg.py script.
520
520
521 * IPython is now compatible with Twisted 2.5.0 and 8.x.
521 * IPython is now compatible with Twisted 2.5.0 and 8.x.
522
522
523 * Added a new example of how to use :mod:`ipython1.kernel.asynclient`.
523 * Added a new example of how to use :mod:`ipython1.kernel.asynclient`.
524
524
525 * Initial draft of a process daemon in :mod:`ipython1.daemon`. This has not
525 * Initial draft of a process daemon in :mod:`ipython1.daemon`. This has not
526 been merged into IPython and is still in `ipython1-dev`.
526 been merged into IPython and is still in `ipython1-dev`.
527
527
528 * The ``TaskController`` now has methods for getting the queue status.
528 * The ``TaskController`` now has methods for getting the queue status.
529
529
530 * The ``TaskResult`` objects not have information about how long the task
530 * The ``TaskResult`` objects not have information about how long the task
531 took to run.
531 took to run.
532
532
533 * We are attaching additional attributes to exceptions ``(_ipython_*)`` that
533 * We are attaching additional attributes to exceptions ``(_ipython_*)`` that
534 we use to carry additional info around.
534 we use to carry additional info around.
535
535
536 * New top-level module :mod:`asyncclient` that has asynchronous versions (that
536 * New top-level module :mod:`asyncclient` that has asynchronous versions (that
537 return deferreds) of the client classes. This is designed to users who want
537 return deferreds) of the client classes. This is designed to users who want
538 to run their own Twisted reactor.
538 to run their own Twisted reactor.
539
539
540 * All the clients in :mod:`client` are now based on Twisted. This is done by
540 * All the clients in :mod:`client` are now based on Twisted. This is done by
541 running the Twisted reactor in a separate thread and using the
541 running the Twisted reactor in a separate thread and using the
542 :func:`blockingCallFromThread` function that is in recent versions of Twisted.
542 :func:`blockingCallFromThread` function that is in recent versions of Twisted.
543
543
544 * Functions can now be pushed/pulled to/from engines using
544 * Functions can now be pushed/pulled to/from engines using
545 :meth:`MultiEngineClient.push_function` and
545 :meth:`MultiEngineClient.push_function` and
546 :meth:`MultiEngineClient.pull_function`.
546 :meth:`MultiEngineClient.pull_function`.
547
547
548 * Gather/scatter are now implemented in the client to reduce the work load
548 * Gather/scatter are now implemented in the client to reduce the work load
549 of the controller and improve performance.
549 of the controller and improve performance.
550
550
551 * Complete rewrite of the IPython docuementation. All of the documentation
551 * Complete rewrite of the IPython docuementation. All of the documentation
552 from the IPython website has been moved into docs/source as restructured
552 from the IPython website has been moved into docs/source as restructured
553 text documents. PDF and HTML documentation are being generated using
553 text documents. PDF and HTML documentation are being generated using
554 Sphinx.
554 Sphinx.
555
555
556 * New developer oriented documentation: development guidelines and roadmap.
556 * New developer oriented documentation: development guidelines and roadmap.
557
557
558 * Traditional ``ChangeLog`` has been changed to a more useful ``changes.txt``
558 * Traditional ``ChangeLog`` has been changed to a more useful ``changes.txt``
559 file that is organized by release and is meant to provide something more
559 file that is organized by release and is meant to provide something more
560 relevant for users.
560 relevant for users.
561
561
562 Bug fixes
562 Bug fixes
563 .........
563 .........
564
564
565 * Created a proper ``MANIFEST.in`` file to create source distributions.
565 * Created a proper ``MANIFEST.in`` file to create source distributions.
566
566
567 * Fixed a bug in the ``MultiEngine`` interface. Previously, multi-engine
567 * Fixed a bug in the ``MultiEngine`` interface. Previously, multi-engine
568 actions were being collected with a :class:`DeferredList` with
568 actions were being collected with a :class:`DeferredList` with
569 ``fireononeerrback=1``. This meant that methods were returning
569 ``fireononeerrback=1``. This meant that methods were returning
570 before all engines had given their results. This was causing extremely odd
570 before all engines had given their results. This was causing extremely odd
571 bugs in certain cases. To fix this problem, we have 1) set
571 bugs in certain cases. To fix this problem, we have 1) set
572 ``fireononeerrback=0`` to make sure all results (or exceptions) are in
572 ``fireononeerrback=0`` to make sure all results (or exceptions) are in
573 before returning and 2) introduced a :exc:`CompositeError` exception
573 before returning and 2) introduced a :exc:`CompositeError` exception
574 that wraps all of the engine exceptions. This is a huge change as it means
574 that wraps all of the engine exceptions. This is a huge change as it means
575 that users will have to catch :exc:`CompositeError` rather than the actual
575 that users will have to catch :exc:`CompositeError` rather than the actual
576 exception.
576 exception.
577
577
578 Backwards incompatible changes
578 Backwards incompatible changes
579 ..............................
579 ..............................
580
580
581 * All names have been renamed to conform to the lowercase_with_underscore
581 * All names have been renamed to conform to the lowercase_with_underscore
582 convention. This will require users to change references to all names like
582 convention. This will require users to change references to all names like
583 ``queueStatus`` to ``queue_status``.
583 ``queueStatus`` to ``queue_status``.
584
584
585 * Previously, methods like :meth:`MultiEngineClient.push` and
585 * Previously, methods like :meth:`MultiEngineClient.push` and
586 :meth:`MultiEngineClient.push` used ``*args`` and ``**kwargs``. This was
586 :meth:`MultiEngineClient.push` used ``*args`` and ``**kwargs``. This was
587 becoming a problem as we weren't able to introduce new keyword arguments into
587 becoming a problem as we weren't able to introduce new keyword arguments into
588 the API. Now these methods simple take a dict or sequence. This has also
588 the API. Now these methods simple take a dict or sequence. This has also
589 allowed us to get rid of the ``*All`` methods like :meth:`pushAll` and
589 allowed us to get rid of the ``*All`` methods like :meth:`pushAll` and
590 :meth:`pullAll`. These things are now handled with the ``targets`` keyword
590 :meth:`pullAll`. These things are now handled with the ``targets`` keyword
591 argument that defaults to ``'all'``.
591 argument that defaults to ``'all'``.
592
592
593 * The :attr:`MultiEngineClient.magicTargets` has been renamed to
593 * The :attr:`MultiEngineClient.magicTargets` has been renamed to
594 :attr:`MultiEngineClient.targets`.
594 :attr:`MultiEngineClient.targets`.
595
595
596 * All methods in the MultiEngine interface now accept the optional keyword
596 * All methods in the MultiEngine interface now accept the optional keyword
597 argument ``block``.
597 argument ``block``.
598
598
599 * Renamed :class:`RemoteController` to :class:`MultiEngineClient` and
599 * Renamed :class:`RemoteController` to :class:`MultiEngineClient` and
600 :class:`TaskController` to :class:`TaskClient`.
600 :class:`TaskController` to :class:`TaskClient`.
601
601
602 * Renamed the top-level module from :mod:`api` to :mod:`client`.
602 * Renamed the top-level module from :mod:`api` to :mod:`client`.
603
603
604 * Most methods in the multiengine interface now raise a :exc:`CompositeError`
604 * Most methods in the multiengine interface now raise a :exc:`CompositeError`
605 exception that wraps the user's exceptions, rather than just raising the raw
605 exception that wraps the user's exceptions, rather than just raising the raw
606 user's exception.
606 user's exception.
607
607
608 * Changed the ``setupNS`` and ``resultNames`` in the ``Task`` class to ``push``
608 * Changed the ``setupNS`` and ``resultNames`` in the ``Task`` class to ``push``
609 and ``pull``.
609 and ``pull``.
610
610
611
611
612 Release 0.8.4
612 Release 0.8.4
613 =============
613 =============
614
614
615 This was a quick release to fix an unfortunate bug that slipped into the 0.8.3
615 This was a quick release to fix an unfortunate bug that slipped into the 0.8.3
616 release. The ``--twisted`` option was disabled, as it turned out to be broken
616 release. The ``--twisted`` option was disabled, as it turned out to be broken
617 across several platforms.
617 across several platforms.
618
618
619
619
620 Release 0.8.3
620 Release 0.8.3
621 =============
621 =============
622
622
623 * pydb is now disabled by default (due to %run -d problems). You can enable
623 * pydb is now disabled by default (due to %run -d problems). You can enable
624 it by passing -pydb command line argument to IPython. Note that setting
624 it by passing -pydb command line argument to IPython. Note that setting
625 it in config file won't work.
625 it in config file won't work.
626
626
627
627
628 Release 0.8.2
628 Release 0.8.2
629 =============
629 =============
630
630
631 * %pushd/%popd behave differently; now "pushd /foo" pushes CURRENT directory
631 * %pushd/%popd behave differently; now "pushd /foo" pushes CURRENT directory
632 and jumps to /foo. The current behaviour is closer to the documented
632 and jumps to /foo. The current behaviour is closer to the documented
633 behaviour, and should not trip anyone.
633 behaviour, and should not trip anyone.
634
634
635
635
636 Older releases
636 Older releases
637 ==============
637 ==============
638
638
639 Changes in earlier releases of IPython are described in the older file
639 Changes in earlier releases of IPython are described in the older file
640 ``ChangeLog``. Please refer to this document for details.
640 ``ChangeLog``. Please refer to this document for details.
641
641
General Comments 0
You need to be logged in to leave comments. Login now