Changelog

This documents notable changes in IJulia.jl. The format is based on Keep a Changelog.

v1.29.2 - 2025-07-29

Fixed

  • Fixed a typo in the tooltip lookup code (#1171).

v1.29.1 - 2025-07-26

Changed

  • Improved the token-finding functionality to return more accurate tooltips when Shift + Tab is pressed (#847).
  • IJulia switched from using MbedTLS.jl to the SHA.jl stdlib. This should not change anything for users except that now only SHA message digests are supported instead of e.g. MD5, and Jupyter uses SHA256 by default (#1170).

v1.29.0 - 2025-06-13

Added

Fixed

  • Fixed handling of the Jupyter process in notebook() and jupyterlab() when Ctrl + C'ing to shutdown the server, now any running kernels will be cleanly shutdown as well (#1165).

v1.28.1 - 2025-06-02

Fixed

  • Fixed a deadlock in the shutdown_request handler that would cause the kernel to hang when exiting (#1163).

v1.28.0 - 2025-06-01

Added

  • notebook() and jupyterlab() now support a verbose keyword argument to echo output from Jupyter to the terminal, which can be useful when debugging kernels (#1157).

Changed

  • IJulia no longer uses a standalone kernel.jl file to launch the kernel, it instead calls a function inside the IJulia module. This means that kernel specs don't use absolute paths anymore and it's not necessary to rebuild IJulia after updating the package (#1158).
  • Colors in stacktraces are now displayed properly in Jupyter (#1161).

Fixed

  • The Julia major and minor version are no longer appended to a custom specname in installkernel(). The default specname that derives from name and appends the Julia version remains unchanged (#1154).
  • Fixed adding multiple packages in Pkg mode (#1160).
  • Fixed an edge-case in inspection requests that would cause autocompletion to not work properly (#1159).

v1.27.0 - 2025-04-01

Added

Fixed

  • The internal heartbeat thread will now shut down cleanly (#1135, #1144, #1150). This should prevent segfaults upon exit.
  • Various fixes to the messaging code to be compliant with Jupyter (#1138, #1150).
  • Improved threadsafety of the IO-handling code so that it should be safe to call flush() concurrently (#1149).