##// END OF EJS Templates
use ROUTER/DEALER socket names instead of XREP/XREQ...
use ROUTER/DEALER socket names instead of XREP/XREQ This is principally a big find/replace, but also adjusts the import-check for pyzmq/zmq versions in IPython.zmq and IPython.parallel. XREP/XREQ are aliases for ROUTER/DEALER in 0MQ 2.x. These sockets continue to exist in 3.0 under the ROUTER/DEALER name only. The XREP/XREQ protocols change some in 3.0, and won't work properly with current IPython. It is likely that once 3.0 is stable (and pyzmq supports it better), we will want to move some sockets back to the *new* XREP/XREQ, but this PR should make IPython safe through libzmq-3.x.

File last commit:

r4101:e9f6b842
r4725:7bde2f38
Show More
roadmap.txt
95 lines | 3.1 KiB | text/plain | TextLexer
.. _roadmap:
===================
Development roadmap
===================
IPython is an ambitious project that is still under heavy development.
However, we want IPython to become useful to as many people as possible, as
quickly as possible. To help us accomplish this, we are laying out a roadmap
of where we are headed and what needs to happen to get there. Hopefully, this
will help the IPython developers figure out the best things to work on for
each upcoming release.
Work targeted to particular releases
====================================
Release 0.11
------------
* Full module and package reorganization (done).
* Removal of the threaded shells and new implementation of GUI support
based on ``PyOSInputHook`` (done).
* Refactor the configuration system (done).
* Prepare to refactor IPython's core by creating a new component and
application system (done).
* Start to refactor IPython's core by turning everything into configurables
(mostly done).
Release 0.12
------------
* Continue to refactor IPython's core by turning everything into configurables.
* Merge draft html notebook (started).
* Add two-process Terminal frontend using ZMQ architecture.
Major areas of work
===================
Refactoring the main IPython core
---------------------------------
During the summer of 2009, we began refactoring IPython's core. The main
thrust in this work was to make the IPython core into a set of loosely coupled
components. The base configurable class for this is
:class:`IPython.core.configurable.Configurable`. This section outlines the
status of this work.
Parts of the IPython core that have been turned into configurables:
* The main :class:`~IPython.core.interactiveshell.InteractiveShell` class.
* The aliases (:mod:`IPython.core.alias`).
* History management (:mod:`IPython.core.history`).
* Plugins (:mod:`IPython.core.plugin`).
* The display and builtin traps (:mod:`IPython.core.display_trap` and
:mod:`IPython.core.builtin_trap`).
* The prefilter machinery (:mod:`IPython.core.prefilter`).
Parts of the IPython core that still need to be Configurable:
* Magics.
* Prompts.
* Tab completers.
* Exception handling.
* Anything else.
Process management for :mod:`IPython.parallel`
--------------------------------------------
A few things need to be done to improve how processes are started
up and managed for the parallel computing side of IPython:
* Improve the SSH launcher so it is at least back to the levels of 0.10.2
* We need to add support for other batch systems (LSF, Condor, etc.).
Porting to 3.0
==============
Dropping 2.5 support was a major step towards working with Python 3 due to
future syntax support in 2.6. IPython 0.11 requires 2.6 now, so 0.10.2 will
be the last IPython release that supports Python 2.5.
We currently have a `separate repo <https://github.com/ipython/ipython-py3k>`_
tracking IPython development that works with Python 3. The core of IPython does
work, but the parallel computing code in :mod:`IPython.parallel` does not yet
work in Python 3, though the only major dependency of the parallel code, pyzmq,
does work on Python 3.