Opened 10 years ago

Last modified 5 years ago

#12719 closed enhancement

Upgrade to IPython 0.12 — at Version 21

Reported by: kini Owned by: tbd
Priority: critical Milestone: sage-5.7
Component: packages: standard Keywords: sd40.5
Cc: iandrus, vbraun, jason, AlexanderDreyer, robertwb Merged in:
Authors: Mike Hansen Reviewers:
Report Upstream: N/A Work issues: spkg
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by jason)

We need to upgrade IPython to the shiny new thing. Well, not really - the shiny new thing was 0.11, and 0.12 is now stable. It's been mostly rewritten and is now a lot more modular, as I understand it. Definitely worth using in Sage.

apply (maybe; this needs to be checked...):

  1. trac_12719-scripts.patch
  2. trac_12719.patch
  3. trac_12719-move_to_preparser.patch

Install IPython 0.12: preliminary spkg at http://sage.math.washington.edu/home/jason/ipython-0.12.p0.spkg

Change History (21)

comment:1 Changed 10 years ago by jhpalmieri

See #12167 for a related ticket: how we deal with IPython configuration files.

comment:2 Changed 10 years ago by fbissey

Would be nice but we need some porting, here is what typically happen if you try to use ipython-0.12 with sage (we had several reports in sage-on-gentoo before I pinned down the version used by sage):

$ sage
----------------------------------------------------------------------
| Sage Version 4.7.2, Release Date: 2011-10-29                       |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/bin/sage-ipython", line 19, in <module>
    from IPython.CrashHandler import CrashHandler
ImportError: No module named CrashHandler

comment:3 Changed 10 years ago by kini

Yes, obviously :) I'm just making this ticket since it is absolutely must be an eventual goal for us and nobody else has made a ticket yet, even though IPython 0.12 has been out for about three months.

comment:4 Changed 10 years ago by fbissey

To be honest Fernando Perez and I talked about it on the mailing list at the time of ipython 0.11 and I said I would tell him what happens when we use ipython 0.11+ with sage because he is interested. For various reason I haven't been able to go back to it. But some sage-on-gentoo users eventually got a taste of it when it finally landed in the portage tree.

So first hurdle: do something about the crash handling.

comment:5 Changed 10 years ago by iandrus

  • Cc iandrus added

comment:6 Changed 10 years ago by mhansen

I'm working on this now, and have made quite a bit of progress. As an added bonus, making the Sage customizations to IPython is quite a bit cleaner. I should hopefully be able to clean out the mess in sage/misc/preparser_ipython.py and sage/misc/interpreter.py .

comment:7 Changed 10 years ago by mhansen

This will fix #4413.

comment:8 Changed 10 years ago by kini

Great, I'm glad you're on the case! :)

comment:9 Changed 10 years ago by vbraun

  • Cc vbraun added

comment:10 Changed 10 years ago by vbraun

What about zmq/pyzmq? It would really add to the functionality and I'm interested in the parallel/cluster support. But, strictly speaking, its not necessary to run ipython. Its also used in the new notebook so maybe its time for it to become a standard package?

comment:11 Changed 10 years ago by kini

  • Cc jason added

CCing Jason as he expressed interest on sage-devel.

comment:12 Changed 10 years ago by jason

mhansen: we'd love to see your work-in-progress if it's available somewhere. I just spent some time reading the IPython docs again and thinking about how we could use it to implement the notebook hub and worker processes.

comment:13 Changed 10 years ago by mhansen

I've posted patches which let Sage work with IPython 0.12 as well as cleaning up some old messy code. These should be in a state where they're ready to review.

I haven't done anything with preparing an spkg yet.

comment:14 Changed 10 years ago by jason

  • Authors set to Mike Hansen
  • Description modified (diff)

I've updated the instructions in the description. Please correct if I messed something up.

comment:15 Changed 10 years ago by jason

  • Status changed from new to needs_review

comment:16 Changed 10 years ago by jason

  • Status changed from needs_review to needs_work
  • Work issues set to spkg

comment:17 follow-up: Changed 10 years ago by jason

Just curious: do your patches work with the current 0.12, or did you base them on the current git master (or does it not matter?). On the IPython mailing list, they mentioned that 0.12 had some big bugs, so they were thinking about cutting a quick 0.12.1. Also, they expect 0.13 in about a month.

comment:18 Changed 10 years ago by jason

I was thinking more about security today with the zmq messages. I think it may be more secure to have a default ipcontroller transport of IPC in a directory inside of $DOT_SAGE, rather than tcp over the loopback interface. That would be more secure in that random people on your computer wouldn't be able to try to register with the IPython hub. I emailed the IPython mailing list about it: http://thread.gmane.org/gmane.comp.python.ipython.devel/7789

What do you think?

comment:19 in reply to: ↑ 17 Changed 10 years ago by mhansen

Replying to jason:

Just curious: do your patches work with the current 0.12, or did you base them on the current git master (or does it not matter?). On the IPython mailing list, they mentioned that 0.12 had some big bugs, so they were thinking about cutting a quick 0.12.1. Also, they expect 0.13 in about a month.

I've looked at the current git master as I was making these changes, and I think these changes should work fine with what's on there. I'd be surprised if it made a difference.

comment:20 Changed 10 years ago by mhansen

I just tested things against git master and everything seems fine.

comment:21 Changed 10 years ago by jason

  • Description modified (diff)

I'm trying to apply these to 5.0beta12. I think I probably got the order wrong in the description, so it would be great if you could check that. But regardless, none of the patches seem to apply to 5.0beta12 cleanly (each has rejects).

Note: See TracTickets for help on using tickets.