##// END OF EJS Templates
More small doc updates.
Fernando Perez -
Show More
@@ -15,8 +15,8 What's new
15 1.4.2 Bug fixes
15 1.4.2 Bug fixes
16 1.4.3 Backwards incompatible changes
16 1.4.3 Backwards incompatible changes
17 2 Release 0.8.4
17 2 Release 0.8.4
18 3 Release 0.8.2
18 3 Release 0.8.3
19 4 Release 0.8.3
19 4 Release 0.8.2
20 5 Older releases
20 5 Older releases
21 ..
21 ..
22
22
@@ -68,80 +68,84 New features
68 be run using the :command:`iptest` command line program.
68 be run using the :command:`iptest` command line program.
69
69
70 * The notion of a task has been completely reworked. An `ITask` interface has
70 * The notion of a task has been completely reworked. An `ITask` interface has
71 been created. This interface defines the methods that tasks need to implement.
71 been created. This interface defines the methods that tasks need to
72 These methods are now responsible for things like submitting tasks and processing
72 implement. These methods are now responsible for things like submitting
73 results. There are two basic task types: :class:`IPython.kernel.task.StringTask`
73 tasks and processing results. There are two basic task types:
74 (this is the old `Task` object, but renamed) and the new
74 :class:`IPython.kernel.task.StringTask` (this is the old `Task` object, but
75 :class:`IPython.kernel.task.MapTask`, which is based on a function.
75 renamed) and the new :class:`IPython.kernel.task.MapTask`, which is based on
76 a function.
76
77
77 * A new interface, :class:`IPython.kernel.mapper.IMapper` has been defined to
78 * A new interface, :class:`IPython.kernel.mapper.IMapper` has been defined to
78 standardize the idea of a `map` method. This interface has a single
79 standardize the idea of a `map` method. This interface has a single `map`
79 `map` method that has the same syntax as the built-in `map`. We have also defined
80 method that has the same syntax as the built-in `map`. We have also defined
80 a `mapper` factory interface that creates objects that implement
81 a `mapper` factory interface that creates objects that implement
81 :class:`IPython.kernel.mapper.IMapper` for different controllers. Both
82 :class:`IPython.kernel.mapper.IMapper` for different controllers. Both the
82 the multiengine and task controller now have mapping capabilties.
83 multiengine and task controller now have mapping capabilties.
83
84
84 * The parallel function capabilities have been reworks. The major changes are that
85 * The parallel function capabilities have been reworks. The major changes are
85 i) there is now an `@parallel` magic that creates parallel functions, ii)
86 that i) there is now an `@parallel` magic that creates parallel functions,
86 the syntax for mulitple variable follows that of `map`, iii) both the
87 ii) the syntax for mulitple variable follows that of `map`, iii) both the
87 multiengine and task controller now have a parallel function implementation.
88 multiengine and task controller now have a parallel function implementation.
88
89
89 * All of the parallel computing capabilities from `ipython1-dev` have been merged into
90 * All of the parallel computing capabilities from `ipython1-dev` have been
90 IPython proper. This resulted in the following new subpackages:
91 merged into IPython proper. This resulted in the following new subpackages:
91 :mod:`IPython.kernel`, :mod:`IPython.kernel.core`, :mod:`IPython.config`,
92 :mod:`IPython.kernel`, :mod:`IPython.kernel.core`, :mod:`IPython.config`,
92 :mod:`IPython.tools` and :mod:`IPython.testing`.
93 :mod:`IPython.tools` and :mod:`IPython.testing`.
93
94
94 * As part of merging in the `ipython1-dev` stuff, the `setup.py` script and friends
95 * As part of merging in the `ipython1-dev` stuff, the `setup.py` script and
95 have been completely refactored. Now we are checking for dependencies using
96 friends have been completely refactored. Now we are checking for
96 the approach that matplotlib uses.
97 dependencies using the approach that matplotlib uses.
97
98
98 * The documentation has been completely reorganized to accept the documentation
99 * The documentation has been completely reorganized to accept the documentation
99 from `ipython1-dev`.
100 from `ipython1-dev`.
100
101
101 * We have switched to using Foolscap for all of our network protocols in
102 * We have switched to using Foolscap for all of our network protocols in
102 :mod:`IPython.kernel`. This gives us secure connections that are both encrypted
103 :mod:`IPython.kernel`. This gives us secure connections that are both
103 and authenticated.
104 encrypted and authenticated.
104
105
105 * We have a brand new `COPYING.txt` files that describes the IPython license
106 * We have a brand new `COPYING.txt` files that describes the IPython license
106 and copyright. The biggest change is that we are putting "The IPython
107 and copyright. The biggest change is that we are putting "The IPython
107 Development Team" as the copyright holder. We give more details about exactly
108 Development Team" as the copyright holder. We give more details about
108 what this means in this file. All developer should read this and use the new
109 exactly what this means in this file. All developer should read this and use
109 banner in all IPython source code files.
110 the new banner in all IPython source code files.
110
111
111 * sh profile: ./foo runs foo as system command, no need to do !./foo anymore
112 * sh profile: ./foo runs foo as system command, no need to do !./foo anymore
112
113
113 * String lists now support 'sort(field, nums = True)' method (to easily
114 * String lists now support ``sort(field, nums = True)`` method (to easily sort
114 sort system command output). Try it with 'a = !ls -l ; a.sort(1, nums=1)'
115 system command output). Try it with ``a = !ls -l ; a.sort(1, nums=1)``.
115
116
116 * '%cpaste foo' now assigns the pasted block as string list, instead of string
117 * '%cpaste foo' now assigns the pasted block as string list, instead of string
117
118
118 * The ipcluster script now run by default with no security. This is done because
119 * The ipcluster script now run by default with no security. This is done
119 the main usage of the script is for starting things on localhost. Eventually
120 because the main usage of the script is for starting things on localhost.
120 when ipcluster is able to start things on other hosts, we will put security
121 Eventually when ipcluster is able to start things on other hosts, we will put
121 back.
122 security back.
122
123
123 * 'cd --foo' searches directory history for string foo, and jumps to that dir.
124 * 'cd --foo' searches directory history for string foo, and jumps to that dir.
124 Last part of dir name is checked first. If no matches for that are found,
125 Last part of dir name is checked first. If no matches for that are found,
125 look at the whole path.
126 look at the whole path.
126
127
128
127 Bug fixes
129 Bug fixes
128 ---------
130 ---------
129
131
130 * The Windows installer has been fixed. Now all IPython scripts have ``.bat``
132 * The Windows installer has been fixed. Now all IPython scripts have ``.bat``
131 versions created. Also, the Start Menu shortcuts have been updated.
133 versions created. Also, the Start Menu shortcuts have been updated.
132
134
133 * The colors escapes in the multiengine client are now turned off on win32 as they
135 * The colors escapes in the multiengine client are now turned off on win32 as
134 don't print correctly.
136 they don't print correctly.
135
137
136 * The :mod:`IPython.kernel.scripts.ipengine` script was exec'ing mpi_import_statement
138 * The :mod:`IPython.kernel.scripts.ipengine` script was exec'ing
137 incorrectly, which was leading the engine to crash when mpi was enabled.
139 mpi_import_statement incorrectly, which was leading the engine to crash when
140 mpi was enabled.
138
141
139 * A few subpackages has missing `__init__.py` files.
142 * A few subpackages had missing ``__init__.py`` files.
140
143
141 * The documentation is only created if Sphinx is found. Previously, the `setup.py`
144 * The documentation is only created if Sphinx is found. Previously, the
142 script would fail if it was missing.
145 ``setup.py`` script would fail if it was missing.
143
146
144 * Greedy 'cd' completion has been disabled again (it was enabled in 0.8.4)
147 * Greedy ``cd`` completion has been disabled again (it was enabled in 0.8.4) as
148 it caused problems on certain platforms.
145
149
146
150
147 Backwards incompatible changes
151 Backwards incompatible changes
@@ -184,9 +188,9 Backwards incompatible changes
184 reflect the new Foolscap network protocol and the FURL files. Please see the
188 reflect the new Foolscap network protocol and the FURL files. Please see the
185 help for these scripts for details.
189 help for these scripts for details.
186
190
187 * The configuration files for the kernel have changed because of the Foolscap stuff.
191 * The configuration files for the kernel have changed because of the Foolscap
188 If you were using custom config files before, you should delete them and regenerate
192 stuff. If you were using custom config files before, you should delete them
189 new ones.
193 and regenerate new ones.
190
194
191 Changes merged in from IPython1
195 Changes merged in from IPython1
192 -------------------------------
196 -------------------------------
@@ -194,8 +198,8 Changes merged in from IPython1
194 New features
198 New features
195 ............
199 ............
196
200
197 * Much improved ``setup.py`` and ``setupegg.py`` scripts. Because Twisted
201 * Much improved ``setup.py`` and ``setupegg.py`` scripts. Because Twisted and
198 and zope.interface are now easy installable, we can declare them as dependencies
202 zope.interface are now easy installable, we can declare them as dependencies
199 in our setupegg.py script.
203 in our setupegg.py script.
200
204
201 * IPython is now compatible with Twisted 2.5.0 and 8.x.
205 * IPython is now compatible with Twisted 2.5.0 and 8.x.
@@ -222,7 +226,8 New features
222 :func:`blockingCallFromThread` function that is in recent versions of Twisted.
226 :func:`blockingCallFromThread` function that is in recent versions of Twisted.
223
227
224 * Functions can now be pushed/pulled to/from engines using
228 * Functions can now be pushed/pulled to/from engines using
225 :meth:`MultiEngineClient.push_function` and :meth:`MultiEngineClient.pull_function`.
229 :meth:`MultiEngineClient.push_function` and
230 :meth:`MultiEngineClient.pull_function`.
226
231
227 * Gather/scatter are now implemented in the client to reduce the work load
232 * Gather/scatter are now implemented in the client to reduce the work load
228 of the controller and improve performance.
233 of the controller and improve performance.
@@ -234,9 +239,9 New features
234
239
235 * New developer oriented documentation: development guidelines and roadmap.
240 * New developer oriented documentation: development guidelines and roadmap.
236
241
237 * Traditional ``ChangeLog`` has been changed to a more useful ``changes.txt`` file
242 * Traditional ``ChangeLog`` has been changed to a more useful ``changes.txt``
238 that is organized by release and is meant to provide something more relevant
243 file that is organized by release and is meant to provide something more
239 for users.
244 relevant for users.
240
245
241 Bug fixes
246 Bug fixes
242 .........
247 .........
@@ -261,43 +266,41 Backwards incompatible changes
261 convention. This will require users to change references to all names like
266 convention. This will require users to change references to all names like
262 ``queueStatus`` to ``queue_status``.
267 ``queueStatus`` to ``queue_status``.
263
268
264 * Previously, methods like :meth:`MultiEngineClient.push` and
269 * Previously, methods like :meth:`MultiEngineClient.push` and
265 :meth:`MultiEngineClient.push` used ``*args`` and ``**kwargs``. This was
270 :meth:`MultiEngineClient.push` used ``*args`` and ``**kwargs``. This was
266 becoming a problem as we weren't able to introduce new keyword arguments into
271 becoming a problem as we weren't able to introduce new keyword arguments into
267 the API. Now these methods simple take a dict or sequence. This has also allowed
272 the API. Now these methods simple take a dict or sequence. This has also
268 us to get rid of the ``*All`` methods like :meth:`pushAll` and :meth:`pullAll`.
273 allowed us to get rid of the ``*All`` methods like :meth:`pushAll` and
269 These things are now handled with the ``targets`` keyword argument that defaults
274 :meth:`pullAll`. These things are now handled with the ``targets`` keyword
270 to ``'all'``.
275 argument that defaults to ``'all'``.
271
276
272 * The :attr:`MultiEngineClient.magicTargets` has been renamed to
277 * The :attr:`MultiEngineClient.magicTargets` has been renamed to
273 :attr:`MultiEngineClient.targets`.
278 :attr:`MultiEngineClient.targets`.
274
279
275 * All methods in the MultiEngine interface now accept the optional keyword argument
280 * All methods in the MultiEngine interface now accept the optional keyword
276 ``block``.
281 argument ``block``.
277
282
278 * Renamed :class:`RemoteController` to :class:`MultiEngineClient` and
283 * Renamed :class:`RemoteController` to :class:`MultiEngineClient` and
279 :class:`TaskController` to :class:`TaskClient`.
284 :class:`TaskController` to :class:`TaskClient`.
280
285
281 * Renamed the top-level module from :mod:`api` to :mod:`client`.
286 * Renamed the top-level module from :mod:`api` to :mod:`client`.
282
287
283 * Most methods in the multiengine interface now raise a :exc:`CompositeError` exception
288 * Most methods in the multiengine interface now raise a :exc:`CompositeError`
284 that wraps the user's exceptions, rather than just raising the raw user's exception.
289 exception that wraps the user's exceptions, rather than just raising the raw
290 user's exception.
285
291
286 * Changed the ``setupNS`` and ``resultNames`` in the ``Task`` class to ``push``
292 * Changed the ``setupNS`` and ``resultNames`` in the ``Task`` class to ``push``
287 and ``pull``.
293 and ``pull``.
288
294
295
289 Release 0.8.4
296 Release 0.8.4
290 =============
297 =============
291
298
292 Someone needs to describe what went into 0.8.4.
299 This was a quick release to fix an unfortunate bug that slipped into the 0.8.3
300 release. The ``--twisted`` option was disabled, as it turned out to be broken
301 across several platforms.
293
302
294 Release 0.8.2
295 =============
296
303
297 * %pushd/%popd behave differently; now "pushd /foo" pushes CURRENT directory
298 and jumps to /foo. The current behaviour is closer to the documented
299 behaviour, and should not trip anyone.
300
301 Release 0.8.3
304 Release 0.8.3
302 =============
305 =============
303
306
@@ -305,9 +308,18 Release 0.8.3
305 it by passing -pydb command line argument to IPython. Note that setting
308 it by passing -pydb command line argument to IPython. Note that setting
306 it in config file won't work.
309 it in config file won't work.
307
310
311
312 Release 0.8.2
313 =============
314
315 * %pushd/%popd behave differently; now "pushd /foo" pushes CURRENT directory
316 and jumps to /foo. The current behaviour is closer to the documented
317 behaviour, and should not trip anyone.
318
319
308 Older releases
320 Older releases
309 ==============
321 ==============
310
322
311 Changes in earlier releases of IPython are described in the older file ``ChangeLog``.
323 Changes in earlier releases of IPython are described in the older file
312 Please refer to this document for details.
324 ``ChangeLog``. Please refer to this document for details.
313
325
General Comments 0
You need to be logged in to leave comments. Login now