-
Notifications
You must be signed in to change notification settings - Fork 371
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
Try install without depext at least once #4860
Comments
You mean that |
No, |
I think you'd want I don't think we should automatically do things which wallpaper over issues on error - it makes opam more surprising. In this case, it also makes it slower - opam's always going to be checking for a non-existent depext and then carrying on until someone is annoyed enough to investigate why and fix the actual issue. We'll discuss it further, but I think there are three things we could/should do instead:
|
I understand all that but, at the end of the day, there are multiple ways of installing external dependencies. Compiling manually, installing via a package manager, potentially one of many. On macos, typically, one can install via Also, some dependencies can have different package names, for instance You also have cases where two copies of the same external dependencies are installed, for instance one for There is no way of knowing in advance which package manager and package name (if any) should be used for any given situation. It is really good that However, one should also think about usability from the user perspective and not tie the user to a specific package manager and/or a specific package name. The most basic situation is to try and install a OCaml package without making assumption about external dependencies. Then, if that doesn't work, it seems okay to make an educated guess and try installing an external dependency. Even better would be if, at this stage, an interactive question is prompted to the user:
That would be a great user experience. |
Indeed - all these scenarios are supported by opam (via either using |
Well, I just think that, again, from a user perspective, expectations like:
or:
usually lend themselves to bad users experience. Not all With liquidsoap, typically, we direct our users to install the application via However, some, if not a lot of them, usually do not have a deep understanding of the functioning of their OSes. That's totally normal, they are trying to run a media stream not be devops engineers. For those users, I would advocate that Then, if anything is missing, this is the right opportunity to display a relevant and informative message to the users, something like:
This will definitely enhance the user experience as it tells them what has been tried, what seems to be missing and what |
Then, of course, you can make a |
Pesronally I think that from a user perspective an expectation like:
is bad user experience. If I was a liquidsoap user I would rather be annoyed to have to master yet another language specific package manager to install it since AFAIK OCaml is purely an implementation detail of liquidsoap. |
Are we considering that |
Some other communities like coq use it like, so I would rather say it is a developer tool. I don't think it's suitable to install applications, especially for people who are not developers at all. I think the best experience for your users is to provide them the ability to install liquidsoap with their system package manager. (Having to learn something entirely new just to be able to install liquidsoap is a barrier to your software) |
Did you have a look into things like https://github.com/AltGr/opam-bundle ? |
I have packaged for Debian for years and was involved closely with the OCaml packaging there so I can say with some degree of confidence that system level packaging is a poor solution to help users install complex OCaml applications.
Going back to system-level packaging for each of these features is a step back in user experience and also in developers burden since this means packaging, updating and rebuilding every single ocaml dependency and their dependencies for each different OS-specific package manager. That's not to say that we don't do it, we provide Debian, Ubuntu, Docker and Alpine packages for a plethora of versions and architectures but, when it comes to giving users a single, unified way of installing the application with the latest ocaml dependencies and optional features, At the end of the day, I think @dra27 and myself are not far appart, we both want Otherwise, this keels akind to having your tech savvy friend seating next to you telling you: "don't worry dude, let me handle this", leaving you with a total sense of confusion about what just happened. I believe that we should take all opportunities to explain what is being done internally when specific decisions or assumptions are being made by any software, give the user a friendly, explanatory message about what and why this is being done and use this opportunity to give more clarity and give the user a chance to learn and understand better what is going on. |
I think that most of what you mention comes from someone who knows and uses But don't underestimate how off-putting it can be. If I'm interested in setting up a internet radio, I couldn't care less about |
We recently had to fix a depext on libopus and noticed that
opam
2.1.0
will keep failing even if the depext is installed with the fixed name. This is not really robust as depext do change over OS release. Maybe--assume-depext
should be implicitly tried at least once?The text was updated successfully, but these errors were encountered: