We have started to get questions about we will handle ipython extensions<br>with all the API changes that have happened.  There are some unresolved<br>issues that I wanted to bring up here. <br><br>In the past, IPython.extensions was a general dumping ground for IPython code.<br>
It contained many types of things:<br><br>* Part of the core IPython functionality.<br>* Third party extensions.<br>* Many other things...<br><br>To force us to deal with these things I have moved everything from IPython.extensions<br>
to either IPython.deathrow or IPython.quarantine.<br><br>The purposes of these 2 sub-packages are documented here:<br><br><a href="http://bazaar.launchpad.net/~ipython-dev/ipython/trunk/annotate/head%3A/docs/source/development/reorg.txt">http://bazaar.launchpad.net/~ipython-dev/ipython/trunk/annotate/head%3A/docs/source/development/reorg.txt</a><br>
<br>We now have an official extension API that is described here:<br><br><a href="http://bazaar.launchpad.net/~ipython-dev/ipython/trunk/annotate/head%3A/docs/source/config/ipython.txt">http://bazaar.launchpad.net/~ipython-dev/ipython/trunk/annotate/head%3A/docs/source/config/ipython.txt</a><br>
<br>For things to be moved back into IPython.extensions they need to adhere to this new API.<br>But...not all things that adhere to this API should be let into IPython.extensions.<br>Here is my current thinking, but I wanted to get feedback from others.  The context of this<br>
is that a user wants to know if ipy_profile_zope.py could be put back into extensions.<br><br>Here is my thought...<br><br>* To in extensions, it has to be an extension.  Profiles are something completely different now.<br>
A profile is simply a config file with a special name.  Profiles can load extensions though.<br>We currently have a place for custom profiles (IPython.config.profile).<br><br>* To be in IPython.extensions or IPython.config.profile a module has to satisfy a few things:<br>
<br>- There has to be willingness amongst the core IPython developers to maintain the code.<br>- The code needs to be reviewed (tests, docs, etc.)<br>- If the code should be in IPython.core, it shouldn't be in extensions.<br>
- If an extension/profile can be distributed as a third party package, it should be.  Thus,<br>the custom completer for enthough.traits should ship with enthought.traits.  Things related<br>to numpy should ship with numpy.  The only case where an extension/profile should<br>
be included with IPython is if i) there is no third party package that it makes sense to <br>ship it with and ii) the majority of IPython users want the functionality but iii) the<br>functionality shouldn't go into IPython.core.<br>
<br>These decisions will need to be made on a case by case basis as people start<br>asking about their favorite extensions being in quarantine or deathrow.<br><br>But, I wanted to see what people though about the overall approach.<br>
<br><br>Cheers,<br><br>Brian<br>