jabranham / system-packages

Moved to gitlab
https://gitlab.com/jabranham/system-packages
GNU General Public License v3.0
39 stars 12 forks source link

About Helm System Packages #17

Closed Ambrevar closed 6 years ago

Ambrevar commented 6 years ago

Hi, I'm the author of Helm System Packages.

I've developed a Helm interface for system package management. Despite not being based on your package, there is an obvious overlap! :)

I initially thought of being based on system-packages but came to the conclusion that the vast majority of the code would be Helm-specific. I'm still wondering if there could be more we could base on your project. Suggestions are welcome!

For now, Helm System Packages only supports pacman, dpkg and portage. Other package managers are (hopefully) coming soon. Help and suggestions are very welcome on that side too :)

Other than that, if you like, we could reference each other's project and help clarify the differences between the two :)

Thanks for the great work!

jabranham commented 6 years ago

Very neat package!

My guess is that system-packages-supported-package-managers might be useful, as it provides a kind of command mapping across different package managers. Obviously things aren't 100% equivalent across package managers, but the intent should be the same.

One thing that annoys me but that I haven't had time to fix yet is that some things would be better if evaluated as elisp. For example, in pacman the log command currently just does cat /var/log/pacman.log & instead of calling (find-file "/var/log/pacman.log") which would be a lot faster.

Any improvements or suggestions you have are more than welcome. I'll add a line to the Commentary and README saying that helm users might also want to check out helm-system-packages.

On Wed 31 Jan 2018 at 03:41, Pierre Neidhardt notifications@github.com wrote:

Hi, I'm the author of Helm System Packages.

I've developed a Helm interface for system package management. Despite not being based on your package, there is an obvious overlap! :)

I initially thought of being based on system-packages but came to the conclusion that the vast majority of the code would be Helm-specific. I'm still wondering if there could be more we could base on your project. Suggestions are welcome!

For now, Helm System Packages only supports pacman, dpkg and portage. Other package managers are (hopefully) coming soon. Help and suggestions are very welcome on that side too :)

Other than that, if you like, we could reference each other's project and help clarify the differences between the two :)

Thanks for the great work!

Ambrevar commented 6 years ago

pacman.log: Very neat idea. Since helm-system-packages is package-oriented, I could filter out the log messages that don't match the selected candidates. I'll add that to my TODO list.

The problem with the universality of system-packages is that it does not quite work with Helm System Packages since it needs to parse the output of every command. For instance the output for listing files or for printing out the package metadata differs across all package managers. Thus I need specific parsing functions for each one of them.

I'll have a deeper look into system-packages at some point!

Ambrevar commented 6 years ago

Back to work: I've implemented "Show history" for pacman, which filters pacman.log by the selected packages. I'm not sure how ideal it is, feedback is welcome.

Other news:

I've added a better reference to system-packages.el in my README.

jabranham commented 6 years ago

Just FYI I just added a command system-packages-get-command that might be useful for you. It returns a command to run as a string. So e.g. if you set system-packages-package-manager to 'pacman, then (system-packages-get-command 'upgrade) returns "pacman -Syu".

Ambrevar commented 6 years ago

Thanks!

I'll see if I can make use of it, but to be honest I doubt it: Helm System Packages has to parse the output of the different package managers and thus needs to specialize the output parsing for each of them. Most of the code is focused towards that. Using `system-packages-get-command' would be of little help I think.

(This is off the top of my head, I could fail to see something.)

-- Pierre Neidhardt