xeus-octave icon indicating copy to clipboard operation
xeus-octave copied to clipboard

Create an octave package for easy installation within octave itself

Open rapgenic opened this issue 4 years ago • 2 comments

Should be able to install with

pkg install xeus-octave

Octave package should provide a function to register the kernel in the system and a function to start the kernel itself (useful to avoid having a binary xeus-octave file and to rely only on octave binary).

rapgenic avatar Jan 30 '21 23:01 rapgenic

This sounds challenging because the xoctave binary actually embeds octave... However, we may be able to get away with the same approach we did to make a PyPI package for xeus-python, which is to have a flavor of the package that loads as an extension, and is started from octave.

Some pointer if one is interested

  • the definition of the xpython extension in CMake : https://github.com/jupyter-xeus/xeus-python/blob/master/CMakeLists.txt#L192 (not built in e.g. the conda package)
  • the way the kernel is launched in Python https://github.com/jupyter-xeus/xeus-python-wheel/blob/master/xpython/init.py
  • the kernel spec for this flavor: https://github.com/jupyter-xeus/xeus-python-wheel/blob/master/kernels/xpython/kernel.json.in

SylvainCorlay avatar Oct 13 '22 21:10 SylvainCorlay

Hi, chiming in again to add a few information I did not write in this issue

My original idea was not to make xeus-octave as an extension to octave: i.e. octave starts and loads the kernel.

Instead the idea was to create the xeus-octave package as a simple installer, which would download and build the sources of xoctave, put it in some known location and then create a simple kernelspec file in the appropriate place that would run xoctave as it's done now.

The only difference would've been that the installation happens through octave and in a way the octave users are familiar with, with the possibility to avoid conda/mamba etc which requires some time to setup if you're not a frequent user

rapgenic avatar Oct 14 '22 08:10 rapgenic