Commit graph

70 commits

Author SHA1 Message Date
José Valim
fcf53c4bf2
Add a notebook about the unique features behind Elixir and Livebook (#314) 2021-06-03 15:47:33 +02:00
Jonatan Kłosko
f70581f255
Introduce an Explore section (#310)
* Add explore page

* Move sidebar to a configurable component

* Fix homepage test

* Add images

* Store example notebooks in files and make explore notebooks linkable

* Fix tests

* Raise on invalid notebook slug

* Keep just the file contents in notebook info

* Move notebook lookup to Explore

* Exclude notebooks in progress
2021-06-02 21:51:43 +02:00
José Valim
69890cf43e
Allow errors on boot to be reported (#311)
Because we unregistered standard_error, if there
was an error booting livebook, we would fail to
print the error. This commit makes sure the original
standard error is added back whenever the proxy
process terminates.
2021-06-02 19:01:45 +02:00
Jonatan Kłosko
80bed1aa06
Delegate output formatting rules to Kino (#309)
* Delegate output formatting rules to Kino

* Update naming

* Group output components and views

* Fallback to inspect when Kino.Render.to_output/1 fails

* Update naming

* Add reference to Kino
2021-06-01 17:47:03 +02:00
Brett Cannon
5f041d219a
Clarify/tweak some comments (#308)
* Clarify a comment for live_markdown.ex

* Tweak grammar for docs of notebook_from_markdown()
2021-05-31 22:49:56 +02:00
Jonatan Kłosko
ce7adef7e4
Add VegaLite widget integration (#306)
* Add support for LiveWidget.VegaLite

* LiveWidget -> Kino

* Show an error when rendering unsupported Kino widget

* Match on Kino.Widget

* Add catch-all for unknown outputs
2021-05-31 22:48:05 +02:00
Jonatan Kłosko
d6c9ab1783
Ensure hostname is properly resolved when running in shortname distribution (#303)
* Ensure hostname is properly resolved when running in shortname distribution

* Update lib/livebook/application.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Pretty print host resolution error

* Add missing env var

Co-authored-by: José Valim <jose.valim@dashbit.co>
2021-05-28 13:41:08 +02:00
Benjamin Philip
26226a42e0
Update Welcome Notebook (#299)
TeX uses the words 'inline and display math', replace 'formula' with these.
2021-05-26 19:57:47 +02:00
Jonatan Kłosko
a7e1d8ba9a
Capture logger output (#298)
* Capture logger output

* Add capture integration test
2021-05-26 19:54:43 +02:00
Jonatan Kłosko
7804ff1d82
Set up Vega-Lite plots rendering (#287)
* Set up Vega-Lite plots rendering

* Automatically recognise VegaLite specification

* Improve matching VegaLite result

* Update naming

* StringFormatter -> DefaultFormatter
2021-05-21 17:51:31 +02:00
Jonatan Kłosko
1a1057153e
Optimise data view recomputation for delta operations (#286)
* Optimise data view recomputation for delta operations

* Use generic access_by_id/1 for nested updates

* Use access_by_id/1 for nested notebook updates

* Use Enum.split_while
2021-05-21 14:56:25 +02:00
José Valim
7416975376
Infer short vs longname from actual node and use longname in example (#284) 2021-05-21 13:03:47 +02:00
Jonatan Kłosko
889503ad68
Require Elixir v1.12 (#278)
* Require Elixir v1.12

* Update introductory notebook

* Update base Docker images

* Add completion of reserved module attributes

* Move complete_module_attribute/1
2021-05-19 16:46:33 +02:00
Jonatan Kłosko
38db12fbcc
Direct non-captured output to the terminal (#273) 2021-05-16 17:07:19 +02:00
Jonatan Kłosko
61a841a6d2
Handle output even after cell finishes evaluation (#272) 2021-05-15 19:55:25 +02:00
Jonatan Kłosko
ea93edcc86
Add embedded runtime for evaluating code in the Livebook VM (#266)
* Add embedded runtime for evaluating code in the Livebook VM

* Update lib/livebook_web/live/session_live/embedded_live.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Use standard error proxy globally in the Livebook node

* Add configuration env variable for setting the default runtime

* Increase evaluation response assertion timeouts

Co-authored-by: José Valim <jose.valim@dashbit.co>
2021-05-10 14:37:38 +02:00
José Valim
1c45d0777a
Update welcome.ex (#263) 2021-05-07 17:17:49 +02:00
José Valim
c7887a57de Remove sleep from tests 2021-05-07 08:57:39 +02:00
Benjamin Philip
ec07e4749a
Use a node pool for node names (#256) 2021-05-07 08:43:36 +02:00
Jonatan Kłosko
5c8e117800
Setup user profiles (#253)
* Add initial user config modal

* Assign user ids

* Update session data to hold user ids

* Get users list for specific ids

* Render user avatar

* User update

* Refactor user changes

* Subscribe to individual user updates

* Show users in side panel

* Add sidebar to homepage

* Don't generate the same color twice in a row

* Add documentation notes

* Fix tests

* Add tests

* Keep users in session data

* Rename color to hex_color
2021-05-03 20:03:19 +02:00
Jonatan Kłosko
3694576244
Require cookie for connecting to an attached node (#245)
* Require cookie for connecting to an attached node

* Fix modals sizing
2021-04-28 14:28:28 +02:00
José Valim
5fede30764 Format 2021-04-28 14:10:52 +02:00
José Valim
2792280e3d
Show how to run tests in notebooks (#153)
This requires Elixir v1.12-rc.1.
2021-04-28 14:05:25 +02:00
Jonatan Kłosko
ac8e1e30f4
Setup Docker image with releases (#244)
* Setup Docker image with releases

* Support ip env variable and use it for Docker deployment

* Autofocus auth forms

* Rename ip env var

* Update option lists

* Make distribution cookie configurable

* Update README.md

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Include git in the final image

* Remove unnecessary build dependency

* Improve file permissions handling and add more comments

* Use namespaced home directory

* Update README with all running options

* Update base image

* Reference official Docker image in the README

Co-authored-by: José Valim <jose.valim@dashbit.co>
2021-04-27 16:34:02 +02:00
Akash Hiremath
a2eb269cec
Fix undefined function warning (#241) 2021-04-26 08:59:46 +02:00
Jonatan Kłosko
aaba58a933
Set up importing notebook from URL or clipboard (#237)
* Set up importing notebook from URL or clipboard

* Extract loading functions into separate module

* Replace import icon with text

* Add TLS peer verification

* Remove unnecessary tests setup step
2021-04-23 17:40:13 +02:00
Jonatan Kłosko
e755ff8122
Restructure settings (#233)
* Force menu items into a single line

* Add shortcut for saving the notebook

* Make the disk icon always show file dialog

* Split runtime and file settings into separate modals

* Add ctrl+s to the shortcuts list

* Add togglable menu to the session page

* Make sure newly saved file appears in the file selector

* Fix path seletor force reloading

* Remove notebook generated in tests

* Add test for file list refresh after save
2021-04-21 23:02:09 +02:00
Jonatan Kłosko
193050cae5 Don't print token in URL when disabled 2021-04-21 00:04:17 +02:00
Jonatan Kłosko
5dd3b82e1f
Don't register named supervisors on remote node (#230) 2021-04-20 20:03:13 +02:00
Jonatan Kłosko
700987dc02
Add editor completion to Elixir cells (#208)
* Implement editor completion for Elixir cells

* Add completion tests

* Refactor completion

* Only extract Markdown docs for now

* Fix Elixir version-dependent test

* Fix docs matching

* Use upcoming Code.cursor_context/2

* Start temporary completion processes under a supervisor

* Show Erlang docs in completion items

* Update to latest Code.cursor_context

* Refactor completion

* Fix module completion when alias expands to Erlang module

* Remove tests-generated notebook

* Show variables and map fields differently

* Adjust signatures formatting
2021-04-20 19:34:17 +02:00
Jonatan Kłosko
44eda43d02
Fix markdown line breaks rendering (#227) 2021-04-20 19:31:02 +02:00
Jonatan Kłosko
5100d2723a Fix invalid File.get_cwd! call 2021-04-20 14:17:09 +02:00
Benjamin Philip
682ee396d0
Allow re-ordering of sections (#221)
* Allow server-side re-ordering of sections

* `Livebook.Notenook.move_section` definition
* Management and implementation of requests
* tests

This commit allows a person to send a request to the server to move a
section. However, the functionality in not yet available in the UI.

* Allow "Move up" and "Move down" functionality for sections

* Rendering of up and down "arrows" at Section's side
* Request from UI on click

This commit enables a user to move a section upwards or downwards, much
like a cell. However, after the section moves, the focus is not changed
to it.

* Apply formatting

* Define a function to update cell status

* Defines a common function for `move_cell` and `move_section` to use to
update cell status.
2021-04-20 12:12:29 +02:00
José Valim
81b123d5b5
Make root path configurable from outside (#217) 2021-04-19 19:50:09 +02:00
Frank Hunleth
73caecc7f1
Fix typos in comments (#207) 2021-04-17 00:40:30 +02:00
José Valim
8a17130391
Improvements to runtime initialization (#201)
1. Do not use nouse_stdio as it causes slowdowns when IEx
   is also running

2. Reduce the amount of generated random atoms by using the
   child_node as the name of the parent process

3. Do not pass quoted strings nor newlines to Windows to eval,
    use argv instead

Closes #194.
2021-04-16 12:31:25 +02:00
Cheng Zhe
f06891cd6d
Fix typo on notebook cell (#200)
Fix typo on notebook cell
2021-04-16 08:05:35 +02:00
José Valim
101f582196
Use known cookie when starting runtimes (#199) 2021-04-15 20:09:54 +02:00
José Valim
57047f9c7f
Unify env variables and change auth to use session (#195) 2021-04-15 15:50:29 +02:00
Frank Hunleth
3a19021983
Support config of the root path for storing notebooks (#191)
This adds a `:root_path` key to the application environment so that
file dialogs can default to known location where notebooks are stored.
2021-04-15 14:51:27 +02:00
José Valim
dee372c623
Improve error message if we can't boot epmd, closes #196 (#197) 2021-04-15 11:42:56 +02:00
Cheng Zhe
bfaf6b7776
Fix spec in delta operation (#193) 2021-04-15 08:56:03 +02:00
Cheng Zhe
9b0ac23c2c
Fix typo in delta operation docs (#192) 2021-04-15 08:55:43 +02:00
Jonatan Kłosko
69343bfc3c
Link to live dashboard for each running session to show process info (#186)
* Link to live dashboard for each running session to show process info

* Update lib/livebook_web/live/home_live/sessions_component.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

Co-authored-by: José Valim <jose.valim@dashbit.co>
2021-04-14 22:37:17 +02:00
James Baldwin
9c6d747aca
Remove extra word in comment (#185) 2021-04-14 21:02:47 +02:00
Jonatan Kłosko
9e026ee4b9
Make sure write-protected files can only be forked (#182)
* Format file errors into readable messages

* Make sure write-protected files can only be forked

* Show tooltip when the file is write protected
2021-04-14 16:27:35 +02:00
Michał Gibowski
539cb8e2b1
Fix some typos in moduledocs (#180) 2021-04-14 13:40:32 +02:00
Jonatan Kłosko
252642f601
Start standalone runtimes as hidden nodes (#172) 2021-04-14 11:23:05 +02:00
Alexandre Antonio Juca
5f3230f7aa
Add spelling corrections to welcome livebook (#169) 2021-04-14 00:17:20 +02:00
Jonatan Kłosko
d8213c3f68
Change wording from delete session to close session (#160) 2021-04-12 23:24:26 +02:00