nikvdp/neomux

Question about choice of binaries being shipped

Closed this issue · 2 comments

Hi, first of all thank you for work on this plugin.
I've been testing it and comparing it to other similar ones.

I'm on linux and use vim-plug to install it.
I already have neovim-remote, which I , like many others, need for other things, not just neomux. It's a python thing, so it's managed system wide by my package manager like all python things. Or if not available system wide, by any other local user python tool like pip or pipx. This way my system is clean, and I know which python version I have and which python version compiled what.

I was cleaning up my $HOME/.config/nvim/plugged folder, to get rid of old unneeded git logs and reduce its size. I emptied it and run "Plugupdate" to get all my plugins back.

One thing that caught my attemption was the more than 30 mega size of neomux folder. No other of my 30 something plugins goes above 1-3 mega size on a fresh install.

In close inspection I found the "culprit" to be the nvr binaries shipped both for mac and linux. Which I presume you somehow compiled to include the python interpreter ??? Which version ????

Now, I read on, https://github.com/nikvdp/neomux/blob/master/README.md , that :

(Optional, for speed) install neovim-remote.

and also

Neomux relies heavily on the excellent neovim-remote, and includes amd64 binaries for neovim-remote for MacOS and Linux as they are the most popular platforms. If you're on Windows or using another chipset (e.g. Raspberry pi/ARM) you will need to install python and pip manually, and then install neovim-remote via pip install neovim-remote before neomux will work.

  1. Isn't this a bit contradictory ?

If it's optional, it shouldnt be forced on install right ?
Further more what if I dont want to download foreign compiled binaries to my system ? I want to have it compiled from source by myself .

  1. Only windows

Since most of the target users for this plugin on a linux/ mac already have python and/or are proficient enought to install any needed (optional) dependencies shouldnt it be the other way around ?

I mean, provide this binary only for Windows users ?

  1. Alternative ways

Couldnt you come up with a way to give users the choice ? of installing they themselves neovim-remote by default ?

So that a simple

Plug 'nikvdp/nemux

doesnt force the 30 mega download.

And then as an option for the others who do want to download the binaries, something like for example:

Plug 'nikvdp/nemux', {'do' more stuff if needed, like downloading the binary}

Thanks in advance

Hey @m040601, glad to hear from you.

Yup, it's a tradeoff. I chose to bundle neovim-remote for the convenience and UX. It just works, and I want neomux to work consistently and with minimal fuss for users of all experience levels and to be immediately usable on a new machine. Given how cheap disk space and bandwidth are these days, 30mb to guarantee a bundled and consistent neomux experience for everyone seems like a good trade

That said, I agree that advanced users or people working in low bandwidth or space constrained environments should be able to opt out, if you have suggestions on how to do that without affecting the default experience I'd love to hear them!

In the meantime I've pushed up a 'slim' branch, feel free to configure your plugin manager to clone that branch while I think through how best to automate maintaining a slim version that stays in sync with this one.

@m040601 didn't hear anything back from you so going to close this issue. Feel free to open another one if you have more to add