On Wed, Dec 14, 2011 at 11:37 AM, Jason Grout <jason-s...@creativetrax.com> wrote: > That sounds like a great idea. One of the last things we wanted to do > before releasing the big 1.0 version is to write more tests and > documentation about the protocol. Things have been on hold for the last > little while (school has been busy), but with the end of the semester, I > hope that we can finish things up over the holiday break. > > We tried to follow pretty closely the ipython messaging spec (or a subset of > it, anyway, with a few of our own extensions like session_end). The ipython > messaging spec is here: > http://ipython.org/ipython-doc/dev/development/messaging.html > > The hope is that when we switch to ipython 0.12, a lot of the work we are > doing manually now will be automatic for us, and our front ends will still > just work.
Ideally, we could have such a test suite be reusable across implementations, so that we can stick it into ipython itself. Having the test suite live inside ipython will ensure that over time, we don't accidentally drift from the spec in ways that could break downstream users. At this point we have a spec in the document you pointed to, but precious little in the way of independent compliance testing, so there's a real danger of the actual implementation diverging from the specification simply by accident. BTW, 0.12 is more or less ready to ship, and it has stabilized a lot of all the new stuff that arrived in 0.11 (along with a ton of new code, obviously). So if you guys start porting sage to 0.12, by all means report on our tracker (https://github.com/ipython/ipython/issues) anything that you see causing a problem. I'm sure you'll find little things here and there we broke that you were using, since Sage uses IPython fairly deeply, but hopefully all should be fixable without too much work. I'm not sure exactly how Sage initializes IPython, but it would be great if in the port to 0.12, you were able to do everything needed for the Sage terminal application as a profile. The profile machinery is much more robust now, and lets you configure just about anything in ipython. If this can be made to work, the command-line version of sage would amount to calling ipython --profile sage The advantage of this is that it would be possible then to launch a 'sage kernel' with ipython kernel --profile sage or to connect to Sage with any of our frontends: ipython console --profile sage ipython qtconsole --profile sage ipython notebook --profile sage Just some ideas for those in the sage-dev team who decide to tackle this one. Let us know on the ipython-dev list how it goes; I try to keep an eye on this list but if I'm swamped I may ignore long stretches completely and can easily miss a message. Cheers, f -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org