-
Notifications
You must be signed in to change notification settings - Fork 27
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
Packages/Modules and beyond #687
Comments
No plans as yet but it's an idea I'm open to. There would need to be a low overhead of administrating and building out such an ecosystem though. Possibly just using
Weirdly I hadn't even thought about uninstall but yes you're right.
No. I did consider automatically resolving dependencies but given dependencies are often going to be external commands (eg That all said, this is a technical push back rather than something I don't want. So the right technical design would definitely change my mind.
At this stage, no. It's a good idea but the only way it could be achieved would be to install the whole package and disable unused modules within. It's definitely a feature I could add though. Nice work on your modules by the way. A couple of notes, if you don't mind:
The |
Thank you for all the suggestions,
Cheers, |
Please do :) |
Just wanted to add that I recently created a module and was also a bit taken aback by the lack of an Also, I couldn't find any documentation about |
Pushed an update to add a |
|
Thanks for the clarification. |
Looks very convenient, now I just need an idea for another package to try it out! |
You have plenty here - https://github.com/search?q=murex-module-&type=repositories |
Interesting... the latest develop breaks with a panic
|
Thanks for catching. I'll push a fix in an hour. |
@orefalo fix deployed to |
Just referencing this article - https://antonz.org/writing-package-manager/ maybe this ticket should be turned into a discussion |
Resolving dependencies is the easy part. What we need to consider is what dependencies we want to resolve. personally I feel resolving dependencies on other modules brings limited value to a shell, because the power of a shell lives and dies by the commands available to it. we can resolve dependencies to aliases, functions and even builtins, but what about external executables? this is where the real problem lies. External executables can be installed in a thousand different ways. Whether it’s operating system differences, differences in distros, even differences on the same platform (eg Ubuntu could have executables installed via snap, Docker, apt, make install, go install, npm, pip, or even just good old wget). And to complicate things, the package name might not even be the same. Eg on Ubuntu in apt it might be named “foo-lang” but in Centos it might be in yum as “foo”. Given Murex is cross platform, that makes a massive number of options to calculate. Managing that would be a full time job in itself. So we need either a really elegant way of managing that, but which is reliable - though I don’t think such a way exists. Or we need to descope external executables. If external executables are descoped then that doesn’t leave a whole lot left to manage. And thus the usefulness of having dependencies managed become pretty weak. So I’d want to understand the business case (to borrow a corporate term) behind dependency resolution. Ie what’s the problem we are trying to solve? Builtins are already handled via the Murex version constraints field which was shipped in v5.0. Aliases are pretty limited in Murex. So that only really leaves functions. Thus this leaves us with with one final question: people really writing functions in one module that depends on another module that isn’t shipped in the same package? The idea of packages was to group modules of the same spiritual domain and/or have inter-dependent functions. So does that design go far enough to save the need for dependency resolution? |
I now better understand your position.
To be honest, while responding to your message, I was under the impression that module dependencies were necessary. With a few exceptions, modules are usually self-contained and intended for user interface. In other words, I have discovered few utility modules that murex doesn't already cover functionally. one of which is: other reusable library I can think of: ncurses like prompt and table mgmt I am afraid it's not sufficient to make a case... So yeah, topic closed - at least from my position. |
Hi again!
I have now built 4 extensions for murex
I will soon start working on
and of course, I looked at some of your own modules, in particular
Allow me to ask a few questions:
Thank you
The text was updated successfully, but these errors were encountered: