-
Notifications
You must be signed in to change notification settings - Fork 37
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
Reconsider player library dependencies for non-PyPI installations #62
Comments
All right, makes sense now. I got the sense from the AUR maintainers that they couldn't help it, but the situation is a little more complex. |
Quick sidenote/possible tip for other users: I edited the PKGBUILD to remove The odd thing is, the |
I doubt I know more about the python packaging process than you do (so I'm sorry if I'm just telling you obvious stuff), but there is definitely a way to do "either/or" dependencies. Given this possibility, you could then define an optional switch that can be used during I'm not sure if a cli switch is the best way to instruct the Of course, there remains the possibility that the user switches video players. However, this will be rare, and in the case that a required library is missing, you could simply inform the user to install it. For example, you could print an error message on startup that says "Default player is set to 'vlc', but no python support for 'vlc' was found. Please install python-vlc with |
First of all, I do consider it to be an issue if users would have to install the binaries for every player that castero supports (mpv, vlc, potentially more). However, it is important to clarify that there is a difference between the Python libraries which I use to interact with these applications, and the applications themselves. castero can run and work perfectly fine with just one of these players installed; I don't personally have vlc on my system, except when I'm using it for testing.
At this point I'd like to say that the only "officially supported" way to install castero is with pip, which is partly for this reason. When you install castero with pip, it does require that the libraries used to interact with the players are installed. This is mostly a convenience thing, because these libraries themselves are very small and having them all downloaded by default means the user doesn't have to manually install these libraries if they decide to separately install vlc and change their config to use that instead.
The issue comes with package managers, which have their own dependency chains. The castero AUR package, which I do not maintain, defines
python-vlc
(the small Python library) as a dependency. Installing that package, however, does require you to download vlc. Which I agree is problematic for users who don't want to install vlc (myself included).I'm not sure the best solution to this. The main concern I have with making all of the libraries optional is that it adds an additional step to the castero installation process, which is to manually install some other library to actually use the client (and you'd also have to do that if you ever want to switch players). I could potentially have a prompt either on first-run or if no players were detected to tell the user to go install one. But again, I really don't like increasing the friction from installing castero to actually using it.
Originally posted by @rien333 in #29 (comment)
The text was updated successfully, but these errors were encountered: