emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: feature/integrated-elpa 4f6df43 15/23: README added


From: Lars Ingebrigtsen
Subject: Re: feature/integrated-elpa 4f6df43 15/23: README added
Date: Wed, 19 Oct 2016 22:41:41 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux)

Anyway, I've been trying to follow this discussion, and I just don't
seem to get what the problem is.

Today, a package is (basically) some .el files in a directory.  We want
to extend this paradigm to have in-tree packages that can be updated.

Isn't the obvious solution to have a manifest in each package that says
what .el files are part of that package?

That is, if we have in in-tree package foo, that consists of the files
lisp/foo.el and lisp/image/foo-images.el, then the manifest for foo-0.5
(included in the emacs-26.1 distribution) will be:

'("lisp/foo.el" "lisp/image/foo-images.el")

Now, if the user has updated to a newer version from GNU ELPA, then
those files will land in ~/.emacs.d/elpa/foo, and the manifest will say
that the files belonging to version foo-0.6 will be

'("elpa/foo/foo.el" "elpa/foo/foo-new-images.el" "elpa/foo/foo-me-more.el")

Now, package.el knows that the user wants foo-0.6, so it prepends that
directory to load-path.  In addition, it also has to blacklist all .el
files from previous versions of the package that are visible, which
will, in this case, be the files in the manifest from the build-in
version 0.5.  So it'll add '("lisp/foo.el" "lisp/image/foo-images.el")
to a new variable load-path-blacklist, and saying `(require 'foo-images)'
anywhere will fail with "cannot open load file".

Am I missing something?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




reply via email to

[Prev in Thread] Current Thread [Next in Thread]