Skip to content

Latest commit

 

History

History
465 lines (279 loc) · 21.5 KB

CHANGELOG.md

File metadata and controls

465 lines (279 loc) · 21.5 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

v0.14.1 (2024-09-20)

Added

  • Added Kino.Test.push_smart_cell_editor_source/2 to test editor changes (#468)

Fixed

  • Kino.start_child/1 to unregister the process if evaluation terminates during process startup (#470)

v0.14.0 (2024-08-26)

Added

  • Added Kino.Audio.play/1 and Kino.Audio.pause/1 (#458)
  • Support for specifying column ratios in Kino.Layout.grid/2 (#459)
  • Support for toggling Smart cell editor visibility (#467)

Changed

  • Remote smart cell to generate code with triple quote when content contains a quote (#465)

Fixed

v0.13.2 (2024-07-05)

Added

  • Worker and supervisor ids in app supervision graph (#449)

Changed

  • Changed Kino.Input.read/1 to raise an error when called in a background process (#451)

Fixed

  • Fixed the dbg pipeline UI crashing when result renders as Kino.JS.Live (#453)

v0.13.1 (2024-06-21)

Added

  • Support for module plugs in Kino.Proxy.listen/1 (#448)

v0.13.0 (2024-06-17)

Added

  • Smart cell editor options :intellisense_node and :source (#390)
  • Added :entrypoint option on use Kino.JS to specify custom entrypoint file (#392)
  • Added Kino.recompile/0 for recompiling path dependencies from Mix.install/2 (#399)
  • Added :message_label option to Kino.Process.seq_trace/2 (#411)
  • Added Kino.Workspace.user_info/1 for getting information about the given client (#412)
  • Support for column relocation in Kino.Table (#419)
  • Added :render_ets_tables option to Kino.Process.app_tree/2 (#411)
  • Introduced Kino.Proxy for handling requests forwarded from Livebook (#431, #433)
  • Added Kino.beam_paths/0 (#439)
  • Added :formatter option to Kino.DataTable.new/2 (#441)
  • Support for OTP 27 process labels in Kino.Process.seq_trace/2 (#442)

Changed

  • Make the smart cell editor source explicitly managed (#391)
  • Deprecated the smart cell editor :attribute and infavour of explicitly managing the source with c:handle_editor_change/2. See this commit for an example of how to migrate to the new API (#391)
  • Kino.Tree to automatically expand tuples of up to 6 elements (#398)
  • Changed c:Kino.Table.export_data/2 to accept extra argument with order information (#418)
  • Renamed the Kino.Hub module to Kino.Workspace (#434)

Fixed

  • Fixed Kino.DataTable crashing with empty data (#427)
  • Tables font changing on first hover in Firefox (#435)

v0.12.3 (2024-01-22)

Added

  • CellKind :struct for Kino.DataTable (#383)

v0.12.2 (2024-01-05)

Fixed

  • Correctly renders CellKind :list for Kino.DataTable (#376)

v0.12.1 (2024-01-02)

Added

  • CellKind :list for Kino.DataTable (#373)

v0.12.0 (2023-12-12)

Added

  • Support for S3 token in Kino.FS.file_spec/1, available on Livebook v0.12 onwards

Changed

  • dbg backend to fall back to the currently registered callback (#369)
  • Changed charlists in Kino.DataTable to be formatted as strings only if ASCI-printable

Fixed

  • Fixed Kino.DataTable to handle integer lists that are not valid charlists (#371)

v0.11.3 (2023-11-15)

Fixed

  • Code with interpolation in remote execution smart cell (#366)

v0.11.2 (2023-11-09)

Fixed

  • Remote execution cell to work with different Elixir and OTP versions on the remote node (#363)

v0.11.1 (2023-10-31)

Added

  • Support for specifying node name as secret in Remote execution cell (#358)

Changed

  • Table pagination to go back to the first page on sorting (#357)

Fixed

  • Showing non-utf8 binaries in Kino.DataTable (#362)

v0.11.0 (2023-10-06)

Note that Kino v0.11.0 requires Livebook v0.11.0, so make sure to upgrade Livebook.

With this release of Livebook and Kino we changed the values for audio and image input. The :data key with inline binary has been removed in favour of :file_ref, which points to a file similarly to the file input. Note that this is not a Kino change per se, the value you get depends specifically on your Livebook version. Here's how you can access the whole binary with the new API:

image_input = Kino.Input.image("Image")
# ...
image = Kino.Input.read(image_input)

-image.data
+image.file_ref
+|> Kino.Input.file_path()
+|> File.read!()

Added

  • Added Kino.Shorts, a convenience module for building outputs and inputs (#310)
  • Added Kino.Audio and Kino.Video for displaying multimedia data (#311)
  • Option for Kino.Control.keyboard/2 to not suppress default shortcuts (#312)
  • Added :terminal option to Kino.Text to support ANSI codes and to mirror stdio style (#314)
  • Support for remote processes in Kino.Process (#317)
  • Support for chunked text and markdown outputs (#318)
  • Added Kino.FS for accessing notebook files (#319)
  • Support for Kino.JS.Live outputs to be exported (#321)
  • Added Kino.start_child!/1 (#322)
  • Remote execution cell (#328, #348)
  • Kino.tmp_dir/0 to get a directory that is cleaned when the runtime terminates (#344)
  • Enabled Kino.DataTable data to be exported in .livemd (#346)
  • Added :debounce option to inputs (#347)
  • Defined default rendering for Nx.Heatmap (#349)

Changed

  • Kino.listen/{2,3} to return PID of the started process (#306)
  • (Breaking) Changed audio and image input values to include file rather than inline binary data

Fixed

  • Fixed date validation when allowed range is given (#326)

v0.10.0 (2023-07-10)

Added

  • Added Kino.interrupt/2 (#288)
  • CDN information to Kino.JS assets (#289)
  • Support for Kino.JS.Live as event source (#294)
  • Added datetime, time and date inputs (#291)
  • Added an option to disable frame placeholder (#297)
  • Kino.Hub.app_info/0 for accessing app information (#299)

v0.9.4 (2023-05-12)

Added

  • Support for lazy tabular data (#283)
  • Download option to tabular outputs (#284)

v0.9.3 (2023-04-27)

Fixed

  • Fixed Kino.animate/2 blocking when used with interval (#281)

v0.9.2 (2023-04-16)

Fixed

  • Premature cleanup of kinos pushed to frame from Kino.async_listen/2 (#277)

v0.9.1 (2023-04-06)

Added

  • Support for transient frame updates (#272)
  • Support for deferred reply in Kino.JS.Live.handle_call/3 (#274)
  • More options for the number of table rows to show (#275)
  • Added Kino.terminate_child/1 (#276)

v0.9.0 (2023-03-17)

Added

  • Support for sending frame updates to a specific client (#250)
  • Added Kino.HTML (#259)
  • Made controls and inputs enumerable (#262)
  • Automatic detection of image binary (#264)
  • Added Kino.Text (#265)
  • Introduced public Kino.Table behaviour (#266)
  • Added Kino.async_listen/2 (#268)

Changed

  • (Breaking) Changed API for accessing file input value (#253)
  • Failures in listen and animate callback to be ignored (#263)

Fixed

  • Support for non-charlist list values in DataTable (#252)

v0.8.1 (2023-01-24)

Added

  • Added a :monospace option to Kino.Input.textarea/2 (#220)
  • Added Kino.Input.audio/2 (#239)
  • Added Kino.Input.file/2 (#241)
  • Added Kino.JS.Live.monitor/1 (#242)

Changed

  • Improved table view (#223, #235, #247)
  • dbg backend to fall back to the default dbg when called outside Livebook context (#231)

Fixed

  • Kino.DataTable not showing the last page (#225)

v0.8.0 (2022-12-05)

Added

  • Support for multi-chunk smart cell source (#209)
  • Added Kino.Input.image/2 for images (#210)
  • Added Kino.Tree for structured term inspection (#208)
  • Support for directly rendering tensors as image via Kino.Image.new/1 (#218)

Changed

  • Updated Kino.DataTable to use Glide Data Grid for richer interactions (#211, #213, #216)

v0.7.0 (2022-10-07)

Added

  • Added Kino.Process.render_seq_trace/2 for visualizing inter-process communication (#165)
  • Added Kino.Layout for building composite outputs, such as tabs and grid (#179)
  • Added send_event/4 to Kino.JS.Live components for messaging a specific client (#183)
  • Added Kino.Download for downloading generated content on demand (#174)
  • Tabbed output for pids and atoms (#185)
  • Unified events consumption via Kino.listen/{2,3} and Kino.animate/{2,3} (#186)
  • Custom backend for Kernel.dbg/2 (#191)
  • Added Kino.Mermaid (#199)

Fixed

  • Crashes when reevaluating a cell with finished tasks (#181)
  • Ensured processes started with Kino.start_child/2 get terminated before reevaluation (#195)

v0.6.2 (2022-06-29)

Added

  • Added Kino.Process with application/supervision tree visualization (#158)

Changed

  • Improved Kino.DataTable to lazily traverse the data (#160)

Fixed

  • Fixed Kino.DataTable to respect the :keys order (#151)

v0.6.1 (2022-05-03)

This release primarily introduces Kino.SmartCell, which allows for creating custom cells in Livebook. Check out the module docs for more information and see this PR for more context.

Along with this release we introduce two new packages, focusing on specific integrations, namely kino_vega_lite and kino_db.

Added

  • Support for binary payloads in Kino.JS and Kino.JS.Live (#88)
  • Support for defining smart cells (#98)
  • Support for custom :name in Kino.DataTable (#102)
  • Callback API for Kino.Control events (#126)

Changed

  • Changed Kino.ETS to render a single column of tuples (#90)
  • Converted DataTable to accept any data compatible with Table.Reader (#122)

Removed

  • Removed Kino.Ecto
  • Removed VegaLite integration in favour of the kino_vega_lite package

v0.5.2 (2022-02-03)

Removed

  • Removed Vega-Lite plot actions incompatible with Livebook (#83)

Fixed

  • Fixed Kino.JS to recompile modules when assets change (#83)

v0.5.1 (2022-01-25)

Fixed

  • Fixed Kino.JS assets archive path to resolve priv directory at runtime (#82)

v0.5.0 (2022-01-19)

This release primarily introduces Kino.JS and Kino.JS.Live, which enable creating custom Livebook widgets with JavaScript. Other than a few other additions, the APIs did not change significantly, but a lot of the internals were reworked to align with Livebook changes, so make sure to update Livebook to 0.5.0 or later.

Added

  • Added Add Kino.Control.form/2 for aggregated input events (#62)
  • Added support for defining custom JavaScript widgets (#64)
  • Added type validations for default input value (#77)
  • Added stream API for control and input events (#76 and #78)

Changed

  • Changed the internal implementation of most widgets to align with changes in Livebook 0.5.0 (#68, #71 and #75)

Removed

  • Removed the deprecated start/* widget functions (#69)
  • Removed Kino.Input.subscribe/1 and Kino.Input.unsubscribe/1 in favour of Kino.Control counterparts (#78)

v0.4.1 (2021-12-05)

Added

  • Added Kino.inspect/2 (#60)

Changed

  • Changed Kino.render/1 to return the rendered value (#60)

v0.4.0 (2021-12-04)

Added

  • Introduced Kino.Input for user input (#53)
  • Introduced Kino.Control for user events (#50)
  • Added Kino.start_child/1 for starting supervised processes (#50)

v0.3.1 (2021-11-10)

Added

  • Added Kino.Frame and Kino.animate/3 for animating static outputs (#39)

v0.3.0 (2021-07-28)

Changed

  • (Breaking) Changed Kino.render/1 to return hidden value (#38)

v0.2.3 (2021-07-25)

Fixed

  • Fixed compilation without Ecto installed (#35)

v0.2.2 (2021-07-23)

Added

  • Added support for structs in DataTable (#33)
  • Added table widget for Ecto queries (#34)

v0.2.1 (2021-06-26)

Added

  • Made inspect options globally configurable (#26)
  • Added markdown output and Kino.Markdown (#28)

v0.2.0 (2021-06-24)

Added

  • Added image output and Kino.Image (#24)

Changed

  • (Breaking) Start dynamic widgets with new for consistency (#25)

v0.1.3 (2021-06-21)

Added

  • Added Kino.DataTable (#22)

Changed

  • Disable sorting for ETS tables (#23)

Fixed

  • Handle ETS tables with mixed number of columns (#21)

v0.1.2 (2021-06-17)

Added

  • Add dynamic table output and ETS table widget (#12)
  • Validate VegaLite data points and automatically convert to map (#13)

v0.1.1 (2021-06-11)

Added

  • Add support for periodical callbacks in the VegaLite widget (#3)

v0.1.0 (2021-06-01)

Initial release