Giter Site home page Giter Site logo

Comments (7)

amitds1997 avatar amitds1997 commented on July 21, 2024 1

The easiest thing I can think of is add new choice: copy the executable binary directly from the local machine to the remote machine

This completely makes sense and is something I planned to do it in the future as part of "completely offline" feature.

So, would downloading on your local and then transferring that on to the remote machine work for your use case? I would update the documentation with the path where all the releases need to be dumped. So, if you have a manual way to do it once, you can do it manually and the plugin would not try to connect to GitHub at all.

Why I cannot simply copy over just the binary is that Neovim ships with some other files along with the release which are I think it might need to run. I will experiment if that is possible at all, though.

from remote-nvim.nvim.

amitds1997 avatar amitds1997 commented on July 21, 2024

Hey, thanks for bringing this up. I get your frustration, however, I would prefer to keep the dependency solely on the official releases so that I can reliably track any upstream issues.

Depending upon the PPA release creates a few problems:

  1. It will only solve the issue for Ubuntu.
  2. I will have to track issues that happen in Ubuntu releases instead of only tracking Neovim installation.
  3. It would interfere with the system environment (I assume) since we would install it through apt-get(??).
  4. ppa.launchpad.net can also face the same issue (maybe?).

Due to these reasons, and to solve your issue as well, here's what I propose:

  1. We cache the Neovim version locally on your system when it once downloads. During successive runs, we just copy the binary over (we would keep per-OS version copy to avoid wrong binary getting copied).
  2. If cache is not found, we fetch from github.com.

This would not completely solve the problem but would remove the dependency on GitHub once the cache is downloaded. How does that sound?

from remote-nvim.nvim.

amitds1997 avatar amitds1997 commented on July 21, 2024

I would have to put more thoughts into this to flesh it out completely before implementing it. But what you can do right now is override the install script.

The current installation script is at scripts/install.sh. You can provide your own installation script instead and pass it's path to neovim_install_script_path so that that would be copied to remote and executed to install Neovim. For more information, see the advanced configuration section in Installation.

We call the script with a command of the type <script> -v <neovim-version> -d <home-directory>/.remote-nvim and the end result should be a neovim binary at <home-directory>/.remote-nvim/neovim-downloads/<neovim-version>/bin/nvim. As long as this happens, you can choose any method to install Neovim.

This might sound like a lot (and it is), but that is how you can alleviate this right now.

from remote-nvim.nvim.

littenglt avatar littenglt commented on July 21, 2024

Sorry, turned it off by mistake.

from remote-nvim.nvim.

littenglt avatar littenglt commented on July 21, 2024

You are right. It is not good to only depend on the PPA due to some users may use it on other OS
The easiest thing I can think of is add new choice: copy the executeable binary directly from the local machine to the remote machine
This is helpful if some of those machine can't connect the release website successfully.
if the neovim can't run on the remote machine, that is problem the owner should deal with.

from remote-nvim.nvim.

littenglt avatar littenglt commented on July 21, 2024

This completely makes sense and is something I planned to do it in the future as part of "completely offline" feature.

That's great!

So, would downloading on your local and then transferring that on to the remote machine work for your use case? I would update the documentation with the path where all the releases need to be dumped. So, if you have a manual way to do it once, you can do it manually and the plugin would not try to connect to GitHub at all.

Sure, I can give it a try if your documentation describle the step in details.

Why I cannot simply copy over just the binary is that Neovim ships with some other files along with the release which are I think it might need to run. I will experiment if that is possible at all, though.

Yes, it would be simple and reliable if everything related on the current machine was copied to the remote machine

from remote-nvim.nvim.

amitds1997 avatar amitds1997 commented on July 21, 2024

I integrated this in #81. Try out the Offline mode and let me know if you face any issues or have suggestions to improve it.

from remote-nvim.nvim.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.