all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Robert Dallas Gray <mail@robertdallasgray.com>
To: emacs-devel@gnu.org
Subject: Re: package.el, auto-installation, and auto-removal
Date: Tue, 11 Nov 2014 20:55:37 +0000	[thread overview]
Message-ID: <B7A7F740-576C-421A-805E-6C4A64F2BAF8@robertdallasgray.com> (raw)

As an addendum to the points that have been raised on this topic, and as the author of Pallet, I thought it worth chipping in a few tuppences. 

There are several solutions to the problem Stefan outlines, with varying degrees of complexity and flexibility. To my mind, Cask is the least complex and most flexible. 

Cask only requires Python when used from the command line. There is a version available as a package.el package; this is what Pallet uses as its backend.

Pallet, as has been stated, is a dirt-simple layer over Cask, which rewrites the Cask manifest when the user installs or deletes packages using the package.el subsystem.

Pallet doesn't yet support version-controlled packages (outside of the package.el ecosystem), but Cask does. Pallet will also, when I have time.

Cask uses a tried-and-tested text-file manifest strategy, which has worked well for, e.g., Ruby's bundler and Javascript's npm. The syntax is a subset of Emacs Lisp.

Cask's author, Johan Andersson (https://github.com/rejeep) has also written epl (https://github.com/cask/epl), a layer over package.el which abstracts the package.el api, and servant (https://github.com/cask/servant), a mock package.el server. He knows the vagaries of package.el very well indeed.

I don't really have a dog in this fight, as I respect the authors and codebases of elpakit, Cask and use-package equally (I don't know enough about el-get to have an opinion), and as Pallet is so functionally trivial. 

But from the point of view of testability, at least, I've had success with using the Cask/epl/servant ecosystem to develop a package, and a set of integration tests which work across several Emacs versions (not so trivial). So I'll throw my hat in the ring for something like Cask and something on top of it like Pallet, even if it's neither of those actual things.

I think a consensus on something simple and flexible would be a great thing for Emacs.

Robert Dallas Gray


             reply	other threads:[~2014-11-11 20:55 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-11 20:55 Robert Dallas Gray [this message]
2014-11-11 21:34 ` package.el, auto-installation, and auto-removal Nic Ferrier
2014-11-13 10:46   ` Phillip Lord
  -- strict thread matches above, loose matches on Subject: below --
2014-11-07 13:45 Stefan Monnier
2014-11-07 14:12 ` Ted Zlatanov
2014-11-07 19:50   ` joakim
2014-11-08  4:27     ` Stefan Monnier
2014-11-10 14:55   ` Phillip Lord
2014-11-10 17:46     ` Ted Zlatanov
2014-11-10 20:27       ` Nic Ferrier
2014-11-10 21:49         ` Stefan Monnier
2014-11-10 21:37       ` Stefan Monnier
2014-11-11  1:29         ` Ted Zlatanov
2014-11-11  2:26           ` Stefan Monnier
2014-11-11  2:59             ` Ted Zlatanov
2014-11-11  3:55               ` Stefan Monnier
2014-11-11 12:44                 ` Phillip Lord
2014-11-11 13:31                   ` Nic Ferrier
2014-11-11 11:31             ` Nic Ferrier
2014-11-11 16:22               ` Stefan Monnier
2014-11-11 17:10                 ` Nic Ferrier
2014-11-11 19:36                   ` Achim Gratz
2014-11-11 20:40                     ` Nic Ferrier
2014-11-11 21:53                       ` Stefan Monnier
2014-11-12 22:17                         ` Nic Ferrier
2014-11-12 22:59                           ` Stefan Monnier
2014-11-12 23:26                             ` Nic Ferrier
2014-11-13  0:21                               ` Stefan Monnier
2014-11-07 20:00 ` Nic Ferrier
2014-11-08  4:29   ` Stefan Monnier
2014-11-08 23:18     ` Nic Ferrier
2014-11-09  3:17       ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=B7A7F740-576C-421A-805E-6C4A64F2BAF8@robertdallasgray.com \
    --to=mail@robertdallasgray.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.