Final 50 commits... 1319-1320 ========= 1321 ==== On line 214, "betwee" 1322-1325 ========= 1327 ==== I don't think that the config/default dir should be added to the default search path for the cluster config files. The reason is that all of the cluster apps *require* a cluster directory that can be written to (the log and security subdirs have to be created.). All of the cluster apps should automatically handle the copying of the default config files to the users cluster directory. If this is not happening, it is a bug. Thus, I think this change should be reverted and tested to make sure it is behaving properly. The changes to silence warnings related to Twisted and sets are fine though. 1328 ==== tools.py: I think that these command line options should be made into a config object when the testing machinery stops creating an IPythonApp and creates an InteractiveShell instead. But what is ipexec used for? It might need the command line options. 1329 ==== Again, the global get_ipython is scary. Maybe we should just rename it to something like get_testing_ipython to emphasize the difference between it and the get_ipython that appears in the user's namespace? 1330-1331 ========= 1332 ==== This commit allows iptest to be run from the source dir. I am 50/50 on keeping this feature. The reason is that part of what we want users to test is if IPython *can* actually be installed. The top-level ipython.py is great though. 1333 ==== Moving the twisted import in error.py inside a function is fine, but why was this needed? I thought the idea is that things in kernel can depend on twisted. 1334 ==== iptest.py: I see you removed kernel from the list of packages that nose will test. But you also removed kernel from the trial_packages. Is it being tested? OK, later in the diff I see you add kernel to both nose_pkg_names and trial_pkg_names. I am pretty sure that it *MUST* be removed from the nose_pkg_names lis (see above comments about testing twisted using code with nose). baseutils.py: baseutils sounds like another genutils disaster waiting to happen. While the docstring makes it perfectly clear why it is called baseutils, we need to get into the habit of organizing functions and classes in utils into logic modules. For example all functions and classes from genutils that handle external command execution, should be in a single module. There can be dependencies between such modules in IPython/utils, but *nothing* in utils should import anything from the rest of IPython (outside of utils). Summary, let's get rid of baseutils and start to break genutils up into logical modules that focus on one thing. 1335 ==== I am suspicious of this fix. As I recall, the problem was much deeper than this. Let's make sure we look through the tickets. I think R. Kern helped us figure out what was going on. 1336-1344 ========= 1345 ==== iptest.py: This type of thing (INSTALLED) makes me want to get rid of the ability to run the top-level iptest without installing IPython. It just makes the test suite more fragile and harder to debug. tools.py/iptest.py: Same thought about INSTALLED and the top-level iptest.py. 1346 ==== I like having sys_info in IPython/utils so other parts of IPython can call is, but let's not put it in genutils. As I have been refactoring, I have tried to follow the general idea: if I need to add a new utility or significantly change an existing one, move it out of genutils into an appropriate submodule of utils. Not sure what the organization of these modules should be, but this will help us get away from the genutils mess. 1347 ==== Very nice!