joshmedeski / sesh

Smart session manager for the terminal
MIT License
410 stars 16 forks source link

Remove (or make optional) the `zoxide` and `tmux` dependencies in the goreleaser Brew config #118

Closed dljsjr closed 1 month ago

dljsjr commented 1 month ago

What would you like sesh to do?

By having those dependencies declared as part of the homebrew package, users who have tmux and/or zoxide installed by other means will end up having the executables installed by brew in order to use sesh, which may not be desired.

  1. For example, linuxbrew users might have zoxide and/or tmux installed as a native OS packge, but still want to use brew to install sesh
  2. Additionally, since they're binary dependencies, it doesn't necessarily make sense to force an installation at "build" time.

One workaround is to pass --ignore-dependencies to the brew install command, but then you get a loud warning.

They could also be marked as either recommended (which would require the user to pass --without-<dep>) or optional (which would require --with-<dep>).

joshmedeski commented 1 month ago

I'm currently using GoReleaser to generate the homebrew tap which doesn't support the recommended or optional feature right now, but I can reach out and see if that's something that could be added.

For now, I think --ignore-dependencies is the most clear path for devs that know what they're doing and want to use a different package manager for the sesh dependencies.

dljsjr commented 1 month ago

I checked the GoReleaser docs before I opened the issue to make sure they supported it and it seems like they do via a type key on the YAML map:

IMG_6664

joshmedeski commented 1 month ago

Nice! I searched the docs and couldn't find this myself.

So I'm leaning toward making it a recommended plugin instead of required. Optional feels misleading. What do you think?

dljsjr commented 1 month ago

Tough to say for me tbh, my intuition may be skewed; macOS is my daily driver, but I don't usually use tmux on my Mac. I spend most of my day SSH'd in to Debian-based Linux boxes, though. Where I try to install as much as possible through apt PPA's, and that's where I use tmux. I only use brew on Linux for stuff that either has no PPA, or that I very explicitly want to keep up to date on a rolling/cutting-edge basis.

So for me, I like optional because it requires a --with <dep> as opposed to recommended which requires a --without <dep>. But again, I don't have any intuition in to whether my use-case is the norm or the deviation.

joshmedeski commented 1 month ago

Since your the outlier here I'm going to leave everything as-is. I think it makes the most sense for most people.

68 is open right now and I'll be adding Debian support, so your edge-case here will go away when that package becomes available.

Thanks for discussing this and working through it with me.