##// END OF EJS Templates
Beginning to organize the rst documentation.
Beginning to organize the rst documentation.

File last commit:

r1256:9ed9604c
r1256:9ed9604c
Show More
changes.txt
104 lines | 4.7 KiB | text/plain | TextLexer
===================
Changes in IPython
===================
.. contents::
Release 0.3
===========
New features
------------
* Much improved ``setup.py`` and ``setupegg.py`` scripts. Because Twisted
and zope.interface are now easy installable, we can declare them as dependencies
in our setupegg.py script.
* IPython is now compatible with Twisted 2.5.0 and 8.x.
* Added a new example of how to use :mod:`ipython1.kernel.asynclient`.
* Initial draft of a process daemon in :mod:`ipython1.daemon`.
* The ``TaskController`` now has methods for getting the queue status.
* The ``TaskResult`` objects not have information about how long the task
took to run.
* We are attaching additional attributes to exceptions ``(_ipython_*)`` that
we use to carry additional info around.
* New top-level module :mod:`asynclient` that has asynchronous versions (that
return deferreds) of the client classes. This is designed to users who want
to run their own Twisted reactor
* All the clients in :mod:`client` are now based on Twisted. This is done by
running the Twisted reactor in a separate thread and using the
:func:`blockingCallFromThread` function that is in recent versions of Twisted.
* Functions can now be pushed/pulled to/from engines using
:meth:`MultiEngineClient.push_function` and :meth:`MultiEngineClient.pull_function`.
* Gather/scatter are now implemented in the client to reduce the work load
of the controller and improve performance.
* Complete rewrite of the IPython docuementation. All of the documentation
from the IPython website has been moved into docs/source as restructured
text documents. PDF and HTML documentation are being generated using
Sphinx.
* New developer oriented documentation: development guidelines and roadmap.
* Traditional ``ChangeLog`` has been changed to a more useful ``changes.txt`` file
that is organized by release and is meant to provide something more relevant
for users.
Bug fixes
---------
* Created a proper ``MANIFEST.in`` file to create source distributions.
* Fixed a bug in the ``MultiEngine`` interface. Previously, multi-engine
actions were being collected with a :class:`DeferredList` with
``fireononeerrback=1``. This meant that methods were returning
before all engines had given their results. This was causing extremely odd
bugs in certain cases. To fix this problem, we have 1) set
``fireononeerrback=0`` to make sure all results (or exceptions) are in
before returning and 2) introduced a :exc:`CompositeError` exception
that wraps all of the engine exceptions. This is a huge change as it means
that users will have to catch :exc:`CompositeError` rather than the actual
exception.
Backwards incompatible changes
------------------------------
* All names have been renamed to conform to the lowercase_with_underscore
convention. This will require users to change references to all names like
``queueStatus`` to ``queue_status``.
* Previously, methods like :meth:`MultiEngineClient.push` and
:meth:`MultiEngineClient.push` used ``*args`` and ``**kwargs``. This was
becoming a problem as we weren't able to introduce new keyword arguments into
the API. Now these methods simple take a dict or sequence. This has also allowed
us to get rid of the ``*All`` methods like :meth:`pushAll` and :meth:`pullAll`.
These things are now handled with the ``targets`` keyword argument that defaults
to ``'all'``.
* The :attr:`MultiEngineClient.magicTargets` has been renamed to
:attr:`MultiEngineClient.targets`.
* All methods in the MultiEngine interface now accept the optional keyword argument
``block``.
* Renamed :class:`RemoteController` to :class:`MultiEngineClient` and
:class:`TaskController` to :class:`TaskClient`.
* Renamed the top-level module from :mod:`api` to :mod:`client`.
* Most methods in the multiengine interface now raise a :exc:`CompositeError` exception
that wraps the user's exceptions, rather than just raising the raw user's exception.
* Changed the ``setupNS`` and ``resultNames`` in the ``Task`` class to ``push``
and ``pull``.
Version 0.8.2
=============
Changes made since version 0.8.1 was released:
* %pushd/%popd behave differently; now "pushd /foo" pushes CURRENT directory
and jumps to /foo. The current behaviour is closer to the documented
behaviour, and should not trip anyone.
Version 0.8.3
=============
* pydb is now disabled by default (due to %run -d problems). You can enable
it by passing -pydb command line argument to IPython. Note that setting
it in config file won't work.
Releases prior to 0.3
=====================
Changes prior to version 0.3 of IPython are described in the older file ``ChangeLog``.
Please refer to this document for details.