Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvements to remote execution cell #355

Closed
josevalim opened this issue Oct 10, 2023 · 5 comments
Closed

Improvements to remote execution cell #355

josevalim opened this issue Oct 10, 2023 · 5 comments

Comments

@josevalim
Copy link
Contributor

  • Support secrets as node name in remote execution. However, it should default to plain text. Clicking on "A" swaps it to secret.

  • Let's add a help box at the top right, as we have in other smart cell, that clarifies the Erlang/OTP version of both nodes need to match.

Screenshot 2023-10-10 at 20 35 10
@mrluc
Copy link

mrluc commented Oct 10, 2023

I just ran through all of this -- tremendous feature ❤️ I love getting that autocomplete in livebook, and I fully appreciate that it's important that this option be put right in front of us, so we don't do something that might be way worse.

To whoever adds that help box -- maybe that help box could also give them a snippet that shows them how to identify the relevant versions, in the case of the version mismatch error, because it's non-obvious that both of the following numbers absolutely need to match.

Or, maybe the smart cell could run+print out all of the below if it's possible to connect to the remote node, which would speed up diagnosis:

# on your system
:erlang.system_info(:version)
:erlang.system_info(:otp_release)

# on the remote system:
:erpc.call(node, :erlang, :system_info, :version)
:erpc.call(node, :erlang, :system_info, :otp_release)

Which, incidentally, is a bit of a sticky wicket if you install the Livebook Desktop app, because it may be unlikely to use the exact versions of everything that you're using in your remote app. It shows the elixir version in settings, for instance, but it might be nice if it showed the 2 relevant erlang versions too.

The one other thing I was thinking was -- is it technically possible/a good idea for Livebook to have the ability to download other erlang versions as needed? 😱 Ie, once we can successfully connect to the other node, detect and offer to download the appropriate runtime, and then launch the notebook in that.

@mbklein
Copy link

mbklein commented Oct 11, 2023

Thanks for opening this issue, José – looks like you beat me to it.

Like @mrluc, I wondered if it might be possible for the Livebook to use a standalone Elixir runtime with a specific version to match the remote. But if I'm not mistaken, the Livebook communicates with its own managed runtime(s) via RPC too, so there's just no way around it. Everything has to match whatever version of Elixir Livebook was compiled with.

@josevalim
Copy link
Contributor Author

I found out what made it version specific to Elixir and I plan to fix that. So we should effectively only depend on the Erlang/OTP version. :)

@mbklein
Copy link

mbklein commented Oct 11, 2023

That is excellent news!

@jonatanklosko
Copy link
Member

We changed the RPC in #363 such that it no longer requires the same versions :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants
@josevalim @mrluc @mbklein @jonatanklosko and others