overtone / emacs-live

M-x start-hacking
http://overtone.github.com/emacs-live/
Other
1.51k stars 241 forks source link

You might want to check out the Borg package manager #256

Closed tarsius closed 6 years ago

tarsius commented 6 years ago

It was just pointed out to me that Emacs Live uses submodules to install packages. I have written a package manager that is centered around that idea, so I though I should tell you about that. Maybe it would make sense to use Borg in Emacs Live.

arichiardi commented 6 years ago

I have been looking for something like that for ages :smile:

It seems that the way packages are handled in borg is very very similar to what Emacs Live is doing with its clojure-pack, git-pack & others. In borg it would be a collective if I understand things correctly.

On another note, I really like git submodule for packages, it enables full hackability when things break and I have started contributing way more to emacs packages when I started to use Emacs Live (see my branch as well, which is way ahead https://github.com/arichiardi/emacs-live/commits/master).

Maybe my branch could be the first attempt to integrating borg in Emacs Live. I don't know, I hope I will have time.

tarsius commented 6 years ago

In borg it would be a collective if I understand things correctly.

Yes.

It seems that the way packages are handled in borg is very very similar to what Emacs Live is doing with its clojure-pack, git-pack & others.

What borg offers here works pretty well for "packs", but for "one package packs" it is a bit cumbersome, so I will have to consider some alternatives like using something that comes closer to the "recipes" used by El-Get and/or providing better tooling. More people, or even projects, using Borg would certainly help getting some new ideas.

Currently a package is either not "packaged" at all, meaning that no default configuration is available that the personal configuration could be based on, and also no build instructions. (Most packages don't need build instructions, but some do.) Or the package has its own branch which the user can merge to install an optional package. The problem with that approach is that maintaining a branch is more work than maintaining a recipe.

tarsius commented 6 years ago

Maybe my branch could be the first attempt to integrating borg in Emacs Live.

That would be great, but you might want to hold off on that for a few days, while I make some changes that make it easier to create a new configuration without basing it on Emacs.g's master branch. (For the most part that boils down to moving the Makefile and bootstrap script into borg and documenting some workflows.)

arichiardi commented 6 years ago

Currently a package is either not "packaged" at all, meaning that no default configuration is available that the personal configuration could be based on, and also no build instructions. (Most packages don't need build instructions, but some do.)

This was one of the main painpoints as well, and I solved very naively with a shell file that compiles, waiting for the stars to align for something better:

https://github.com/arichiardi/emacs-live/blob/master/packs/compile-live-packs

That would be great, but you might want to hold off on that for a few days

Definitely, don't have enough time now for that anyways.