Welcome to IPython's Developer Zone. This page has information about IPython's development. IPython is developed by a distributed team of developers using tools like Subversion and Trac.

Launchpad Repositories

IPython development has been moved to Launchpad, using the Bazaar distributed version control system.

The development version of IPython can be downloaded from our Launchpad repository by doing:

bzr branch lp:ipython

The exact push/pull URL:s for stable-dev branch are here.

IPython1 is developed as a separate project from the regular IPython. Check out the development branch of IPython1 :

bzr branch lp:///~ipython/ipython/ipython1-dev

This directory contains a nightly export form SVN for both IPython trunk and the SAW branch of IPython1. The exports are available both as open subdirectories and as single tarballs you can download.

Wiki pages for Launchpad blueprint documents can be found here.

Development Trac

Note that Trac will become obsolete once we move completely over to Launchpad.

We have a Trac site that has a development wiki, SVN repository browser, bug/ticket tracking, project timeline, etc.

Running from a BZR checkout without reinstalling after every update

The best way to run IPython from BZR development code is to install setuptools and run "eggsetup.py develop" in your bzr checkout directory. This way, the development version will be available as your "system" IPython, and this will also work for projects that embed IPython.

Another way is to add a couple symlinks; however, this wont support embedding IPython. As an example, let's assume that your $PYTHONPATH includes the directory $HOME/usr/local/lib/python2.4/site-packages (a convenient choice if you usually install locally downloaded pacakges via setup.py install --prefix=$HOME/usr/local). Lets imagine you've also just done the checkout of the IPython trunk, as indicated above, and put it in $HOME/usr/local/src. Then, the IPython library directory would be $HOME/usr/local/src/ipython/IPython. To make this available to python, add the following symlink:

ln -s $HOME/usr/local/src/ipython/IPython $HOME/usr/local/lib/python2.4/site-packages/IPython

You will also need to symlink several IPython startup scripts so that they can be found by your $PATH. In the above example, you might do:

ln -s $HOME/usr/local/src/ipython/scripts/ipython /usr/local/bin/ipython

and

ln -s $HOME/usr/local/src/ipython/scripts/pycolor /usr/local/bin/pycolor

Note that even if the code were to contain C extensions (IPython currently doesn't), you don't need to issue a python setup.py command. Rather, you'd just manually rebuild the extensions via:

python setup.py build_ext --inplace

The inplace option ensures that the extension module is left in the library directory, so the above symlink trick finds all the code (pure python and extensions) together.

Contributing to IPython

The Developer Guidelines provide basic information on how to contribute to IPython as a developer.

Bug Reports and Feature Requests

Bugs reports and requests for new features should be submitted to our ticket system.

Reports related to the stable branch (the trunk) of IPython should be assigned to vivainio, who is the current maintainer of this branch.

Reports related to IPython1 should be assigned to bgranger.

Reports related to pyreadline should be assigned to jstenar.

Developer Mailing List

We have a mailing list for discussions about the development of IPython. There is also a web-based gmane mirror of this list.

External Dependencies

We are fully committed to having the core of IPython depend on nothing outside of the Python standard library. This point is non-negotiable. Here is why:

1) IPython needs to run on Jython and IronPython

2) IPython ships on the OLPC. Space is a huge concern on this platform.

Developer Zone (last edited 2008-03-21 00:44:35 by SteveRogers)