Emacs Packages 2

Last night I was energized by BarCampBoulder (I’ll write more about it later, probably tomorrow) and so I hacked on my Emacs Lisp package manager for a while. Check out my page on installing the package manager. Just eval one lisp form and you will be all set up…

Next for this package is some rewriting — changing the archive format, fixing activation a little, and allowing for single-file packages on the server. Also I’m going to write a little tool so I can click on a message in gnu-emacs-sources and have the package automatically uploaded to ELPA.

6 Comments

  • Hey, i just installed package.el and it seems to work. At any rate i was able to install caps-mode. I am at work (therefore a Windows box) and bubbles did not install, because it wanted to untar it using `tar’. Doesn’t Emacs have its own built-in `tar-mode’ that could maybe be used portably?

    Also, a couple of thoughts about `package-menu-mode’: 1) It might be nice to have `?’ bound to a quick help function that lists the key bindings and what they do, like dired, etc.; and 2), even cooler, would be if the package list included some kind of short description of the packages (i have no idea what, eg. `wtf’ is). Maybe it could be grabbed from the first line of the files? I dunno yet how it works, so i dunno. Anyway, just some thoughts. I would send a patch for 1) above, but it would be so trivial, i thought it would be silly.

  • Thanks for trying it!

    Yes, there is a tar mode, but when I initially looked at it, it didn’t seem too easy to have it extract things. I will take another look. This does seem important to fix for those non-Linux boxes…

    I’ll implement the “?” thing — good idea, thanks. And the descriptions are already available, I just forgot to make them show up in the package menu, oops. I’ll do that too.

  • Oh, BTW — send me some email and I will list you in the “thanks” section.

  • Hi. Sorry about the late response. I will send you that email.

    I have another couple of thoughts:

    1) In the package list, does marking a package with `i’ upgrade it if possible, if it already is on the system? I see there is a status line in the menu, but already-installed packages are blank. It might be useful to show them as `installed’ or even `upgradeable’.

    2) If marking with an `i’ does do an upgrade to an already installed package, then maybe package.el itself could be in the archive.

    3) Has anyone shown any interest in mirroring the archive? Could there be code in package.el to select and/or auto-select and/or fallback on alternate mirrors?

    Anyway, just some thoughts.

  • If there’s a newer version of the package, you can install it with “i”. So, yeah, this is basically upgrading. I want to add an easy way to upgrade all the packages you have installed, but I haven’t done that yet. I also haven’t implemented deletion yet — older packages just stay around, inactive.

    Initially I was avoiding upgrading package.el, thinking that this feature would not be too useful if this code ended up in Emacs. But now I think it is worthwhile — e.g, I have a bug fix release coming pretty soon, and it would be nice if it were trivial to upgrade. So I will most likely add this.

    Nobody has talked to me about mirroring. Fallback and mirror selection sounds like a nice idea, at least for when we’re a bit more popular.

  • A couple of suggestions for package.el:

    – allow multiple package repositories

    – support a “pull” approach to loading packages, as well as the current “push” one.
    As far as I can see the only way to disable a package temporarily is to delete the actual package directory. Also, explicitly asking for packages in .emacs lets you comment why you want them and also comment why you commented them out.

    Keep up the good work 🙂

Join the Discussion

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.