Releases: janpfeifer/gonb
Releases · janpfeifer/gonb
v0.10.0 Plotly, VSCode, Cell Magic
0.10.0, 2024/04/07 Improvements on Plotly, VSCode support, Cell magic, interrupt handling and several minor fixes.
- Added special cell commands ("magic"):
- Added
dom.LoadScriptOrRequireJSModuleAndRun
anddom.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
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
v0.9.4 Small fixes and improvements
- 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 thehost/
subdirectory. More in #78 - Fixed
gonbui.RequestInput
.
v0.9.3: New widgets.Select; Clean-up `widgets` API.
- 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.
- Fixed Darwin (and other non-linux, that are unix-like) build -- see #74.
- Added cross-compilation to darwin/arm64 test in
run-coverage.sh
- Added cross-compilation to darwin/arm64 test in
v0.9.1 Small bug fixes
- Removed left-over debugging messages.
- Removed left-over replace rule from tutorial.
v0.9.0 -- Widgets, DOM, Wasm, Front-end communication, `nbexec`
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 runningnbconvert
.
- a websocket opened from the front-end that communicates
- 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.
- Allows compiling cell to WASM and running that in the notebook. One
- 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.
- Serialize "execute_request" and other "busy" type of requests, so they are executed in the order
- Added support for
%env VAR=VALUE
syntax as well (like ipython uses).
v0.8.0 Tests and Benchmarks
- 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
- Added support for --raw_errros, where errors are not reported using HTML. Useful for
running tests, for instance withnbmake
(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).