Skip to content

Latest commit

 

History

History
392 lines (234 loc) · 17.4 KB

CHANGELOG.md

File metadata and controls

392 lines (234 loc) · 17.4 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.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