From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: phillip.lord@russet.org.uk (Phillip Lord) Newsgroups: gmane.emacs.devel Subject: Re: feature/integrated-elpa 4f6df43 15/23: README added Date: Wed, 19 Oct 2016 23:52:30 +0100 Message-ID: <87oa2gt0i9.fsf@russet.org.uk> References: <20160916203414.25203.87032@vcs.savannah.gnu.org> <87mvi5spl9.fsf@Rainer.invalid> <83mvi51y3b.fsf@gnu.org> <87instslxu.fsf@russet.org.uk> <83inst1vut.fsf@gnu.org> <87eg3ekjz2.fsf@russet.org.uk> <83vawpx677.fsf@gnu.org> <87h989ixxd.fsf@russet.org.uk> <83mvi1ww6m.fsf@gnu.org> <87wph5fw0w.fsf@russet.org.uk> <838ttlwodt.fsf@gnu.org> <878ttl3342.fsf@Rainer.invalid> <8360opwjs2.fsf@gnu.org> <8760oosrn8.fsf@russet.org.uk> <83shrsvj3g.fsf@gnu.org> <87k2d4fk9m.fsf@russet.org.uk> <83h988uzpm.fsf@gnu.org> <87eg3ce2s1.fsf@russet.org.uk> <87pomw8ces.fsf@lifelogs.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1476917618 12990 195.159.176.226 (19 Oct 2016 22:53:38 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 19 Oct 2016 22:53:38 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Lars Ingebrigtsen Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 20 00:53:29 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bwzjY-0000rD-8a for ged-emacs-devel@m.gmane.org; Thu, 20 Oct 2016 00:53:16 +0200 Original-Received: from localhost ([::1]:51499 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bwzja-0001I2-Is for ged-emacs-devel@m.gmane.org; Wed, 19 Oct 2016 18:53:18 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33737) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bwziu-0001Gv-EP for emacs-devel@gnu.org; Wed, 19 Oct 2016 18:52:40 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bwziq-0002kE-Q4 for emacs-devel@gnu.org; Wed, 19 Oct 2016 18:52:36 -0400 Original-Received: from cloud103.planethippo.com ([31.216.48.48]:53868) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1bwziq-0002jm-Jk for emacs-devel@gnu.org; Wed, 19 Oct 2016 18:52:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=russet.org.uk; s=default; h=Content-Type:MIME-Version:Message-ID: In-Reply-To:Date:References:Subject:Cc:To:From; bh=p5G7OvRbHWzsMYjl/aN0Yppxm+DVUzozRWJ7tcV2deE=; b=ceBJNQn7KDfhcD3GroaXchgH6z 1/EuhsWRClKYtpWMOEU8/Hxc7y6elZvUSOKmPY2Wus+d7J3MWYxxWogfSZ10G5H2ZnrndioL1alsj 8rqHKPGNP0lr6WbOVwJUpAI6gOpTnajQEtrTNDnmt4hvGvQygsyZasam0QTc3g8GTsdz/+hMsjRX7 Xp4+H+hn7PMDY8VGQ9TWKv/8KLllZsPXjk6Yf3EAxxJP0MKeRRfABUHPtth+OkhEIeMDm+S0zfdJs jtZ71xPWFvjCRRPAXq+sdxbaGAwVMpYV83y1Z7XM3alLwQW8at+f5FPFCUIN+Nf/MlSM6a9/wWTNR ugkm4AhA==; Original-Received: from cpc14-benw10-2-0-cust305.16-2.cable.virginm.net ([92.234.125.50]:35124 helo=russet.org.uk) by cloud103.planethippo.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.86_1) (envelope-from ) id 1bwzip-000Vez-4x; Wed, 19 Oct 2016 23:52:31 +0100 In-Reply-To: (Lars Ingebrigtsen's message of "Wed, 19 Oct 2016 22:41:41 +0200") X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cloud103.planethippo.com X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - russet.org.uk X-Get-Message-Sender-Via: cloud103.planethippo.com: authenticated_id: phillip.lord@russet.org.uk X-Authenticated-Sender: cloud103.planethippo.com: phillip.lord@russet.org.uk X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 31.216.48.48 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:208515 Archived-At: Lars Ingebrigtsen writes: > 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. I don't. I want to have a parallel tree of in package.el format. Updating (or, rather, outdating since we are not changing files) comes for free. > 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") Yes, although, this is not just the .el files. We also have the info and etc files which need similar treatment. > 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". Also, loaddefs.el. Currently, the in-tree foo-0.5 will have it's autoloads dumbed into loaddefs.el (unless it's one of those packages with it's own loaddefs). We'd also need to undefine all the autoloads defined in there which relate to foo-0.5. I think that there might be an issue with timing also. Say some one has a .emacs like so: (require 'foo) (package-initialize) Then I think that they will get foo-0.5 because package.el hasn't done all the things you mention yet. Thinking quickly, this is an issue for my solution also, and will require a careful solution. > Am I missing something? You have thought of most of the issues that came to mind for an in-tree solution; we probably are both missing things. We won't know till it's build. Phil