Skip to content

Releases: janpfeifer/gonb

v0.10.0 Plotly, VSCode, Cell Magic

07 Apr 08:53
Compare
Choose a tag to compare

0.10.0, 2024/04/07 Improvements on Plotly, VSCode support, Cell magic, interrupt handling and several minor fixes.

  • Added special cell commands ("magic"):
    • %%writefile to write contents of cell to file. See #103. Thanks @potoo0!
    • %%script, %%bash and %%sh to execute the full cell contents with the given command (none of the extra flags are supported yet though).
  • Added dom.LoadScriptOrRequireJSModuleAndRun and dom.LoadScriptOrRequireJSModuleAndRunTransient that dynamically decides
    if to include script using <script src=...> or use RequireJS.
  • Plotly library uses dom.LoadScriptOrRequireJSModuleAndRun now, allowing result to show up in the HTML export of
    the notebook.
  • Added plotly.AppendFig that allows plotting to a transient area, or anywhere in the page.
  • Several minor fixes, see #106
  • Added handling of SIGHUP and SIGTERM to handle a clean exit: and avoid leaking gopls daemons.
  • Make sure SIGINT triggers an equivalent SIGINT on the child processes (it was not happening in VSCode).
  • Added docs/VSCode.md with notes/info on running GoNB with Visual Studio Code.

v0.9.6 Added Plotly support

18 Feb 17:49
Compare
Choose a tag to compare

Updates:

  • Fixed some typos in klog formatting.
  • Updated dependencies.
  • Updated gopls dependencies: new jsonrpc2 API.
  • Added LoadScriptModuleAndRun.
  • Added Plotly Javascript support, in gonbui.plotly package. Also added example in tutorial.
  • During installation, consider /var/folders also a temporary directory.

v0.9.5

10 Jan 03:52
Compare
Choose a tag to compare
  • Added instrumentation to Jupyter input boxes in nbexec.
  • Added functional tests for input boxes created with %with_inputs, %with_password or gonbui.RequestInput.
  • Added logo to installation #84

v0.9.4 Small fixes and improvements

13 Dec 08:33
Compare
Choose a tag to compare
  • Cache is by-passed if cache key is set to empty ("").
  • New widgets demo, using GoMLX's Flowers Diffusion demo
  • Updated Dockerfile to start from /notebooks directory, and with instructions to mount the
    host current directory in the host/ subdirectory. More in #78
  • Fixed gonbui.RequestInput.

v0.9.3: New widgets.Select; Clean-up `widgets` API.

09 Oct 08:12
8b4919e
Compare
Choose a tag to compare
  • Widgets:
    • Normalized API across widgets, so they all look the same -- breaks the API, apologies.
    • Added widget.Select for a drop-down menu.
    • Improved integration tests.
  • nbexec: changed javascript code to use the public API jupyterapp.commands.execute instead.

Fixed Darwin build.

07 Oct 21:58
Compare
Choose a tag to compare
  • Fixed Darwin (and other non-linux, that are unix-like) build -- see #74.
    • Added cross-compilation to darwin/arm64 test in run-coverage.sh

v0.9.1 Small bug fixes

04 Oct 03:56
Compare
Choose a tag to compare
  • Removed left-over debugging messages.
  • Removed left-over replace rule from tutorial.

v0.9.0 -- Widgets, DOM, Wasm, Front-end communication, `nbexec`

04 Oct 03:34
fc5f8a9
Compare
Choose a tag to compare

This is a large update, which includes refactoring of internal package to an internal subdirectory:

  • Added widgets support (experimental):
    • a websocket opened from the front-end that communicates
      to the kernel, and through it to the users cells.
    • API to use it in gonb/gonbui/widgets.
    • API to communicate with front-end in gonb/gonbui/comms.
      • Listen[T](address) function added to create a channel listening
        to front-end updates.
      • Added --comms_log flag to add verbose logging to the Javascript console.
    • API to manipulate the DOM in gonb/gonbui/dom.
      • Persist() added to persist transient changes to the DOM -- meaning
        dynamically generated HTML and widgets will show up when exporting
        to HTML or when running nbconvert.
  • Added gonb/cmd/nbexec to execute notebooks for integration testing --
    nbconvert --execute was not working.
  • Added "%wasm" support (experimental):
    • Allows compiling cell to WASM and running that in the notebook. One
      can write widgets like this. Experimental: there are some use cases are not 100% clear. See
      "%help" for details on how this works.
    • Added also github.com/janpfeifer/gonb/gonbui/wasm library with some basic helpers to write
      WASM widgets.
    • Added gonb/examples/wasm_demo.ipynb with a couple of examples of Wasm.
  • Improved logging of errors; pre-checking for duplicate package, with improved error message.
  • Handle incoming messages in a separated goroutine, so asynchronous/concurrent messages can be
    handled. Specially important when executing cells that take a long time.
    • Serialize "execute_request" and other "busy" type of requests, so they are executed in the order
      they are received.
  • Added support for %env VAR=VALUE syntax as well (like ipython uses).

v0.8.0 Tests and Benchmarks

24 Aug 06:21
Compare
Choose a tag to compare
  • Added support for tests and benchmarks (go test) with %test.
    See example here,
    and discussion in #58
  • Added %gcflags to allow arbitrary compilation flags to be set for GoNB.
    See example here
    and discussion in #58

v0.7.8 Integration tests + bug fixes + go1.21 update

17 Aug 10:51
Compare
Choose a tag to compare
  • Added support for --raw_errros, where errors are not reported using HTML. Useful for
    running tests, for instance with nbmake (see #48, by @bagel897).
  • Added functional/integration tests by instrumenting nbconvert (bringing coverage from ~25% to ~55%).
  • Added run_coverage.sh to include integration tests in coverage report.
  • Coverage configured to be generated manually (and not automatically in GitHub actions) -- coverage
    badge still generated in GitHub actions.
  • Installation uses $JUPYTER_DATA_DIR, if it is set.
  • Fixed proper shutdown.
  • Fixed gopls dying when a cell is interrupted.
  • Updated go.mod parser dependency for go 1.21 -- since the format changes slightly (see #53).