unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: emacs-devel@gnu.org
Subject: Re: GNU ELPA and package.el
Date: Mon, 08 Apr 2019 21:39:40 -0400	[thread overview]
Message-ID: <jwvlg0kw3zm.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: 87tvf8fdp4.fsf@Rainer.invalid

> Well, Org would have to move it's main file out of the way and replace
> it with a generated one just to accomodate ELPA.

That's one choice.  Adding the "Version: ..." directly in the current
org.el would also work OK in practice, even if you find it distasteful
in theory.

> That was (very) briefly contemplated, but it still doesn't make sense.
> What if the next package archive wants it someplace else?

Yes, what if.  What if the next package archive decides that `org.el`
should be the name of the Org-mode file that describes the package?

I think you'll be better off crossing this bridge when/if you get to it.

>> I'm pretty sure it's much easier for Org to put the version where GNU
>> ELPA expects it than for all elpa.git packages to change where they put
>> their version.
> Why is this more logical than using either the file that defines the
> package (org-pkg.el) or the file that normally gets generated for Org
> for this purpose (org-version.el)?

"Logical" is probably not the right way to describe it.  Currently, we
indeed exceptionally use org-pkg.el, but it's the one and only package
which does that, so I'd like to get rid of this ad-hoc hack in the
build scripts.

The status-quo is on your side, tho, so I guess I'll have to "suck it up" ;-)

>>> What I'm trying to say is that users might easily find themselves in the
>>> situation that requires them to ignore part of their system installation
>>> (which they can't do anything about because somebody else provides it).
>> Right, but I don't see what package.el can do about it.
> Telling them about all available versions and where they come from would
> be a start.

It already does tell them about all versions.  So IIUC you're asking the
`list-packages` command to display somewhere the package location.

My setup is a bit weird, so my tests aren't very conclusive, but it
seems that there's already some indication of the complete directory
name where the package was found, tho it's not displayed in all cases
(and it's sometimes labeled as "external").

I'm not very familiar with the package UI so I'm probably not the best
person to fix this, but it sounds like a good idea, indeed.

> This would likely entail to name the various local package
> directories, so they show up by name like the different package archives
> already do.

Oh, you're thinking of displaying them directly in the package list
rather than only in the *Help* buffer where an individual package
is described?  Yes, that would require more work to be able to name
those directories, but it would be fairly natural to re-use the
"archive" column for that.

> What I meant was that the order of the various local package sources
> (and possibly the order of foreign package archives) could be used to
> indicate the general preference order, much like load-path does.

Indeed, that sounds fairly natural.  I'm not sure how easy it would be
to do it, tho.  Also not clear would be the interaction with built-in
packages: e.g. it's important for the cl-lib-1.0 built-in packages to
take precedence over user-installed cl-lib-0.5.

>> If we made package-user-dir packages always take precedence over
>> system-wide packages, then this case is covered, right?
> Yes, for this case this should work.  But the general precedence will
> sometimes need to be modified on a per-package basis.

Installing or not installing the package into package-user-dir does give
you the per-package control.

> The tricky question is what package menu should be doing if the user
> then asks for updates.  Any exception should be sticky unless
> explicitly lifted, but it's not really recorded what was a user
> decision and what was the result of automatic resolution (other
> package managers keep tabs on this for exactly that reason).

We do record installation decisions in package-selected-packages.

> Ideally anything not needed for dumping Emacs should be a proper package
> (whether it's maintained in a different repository or not is orthogonal
> to that).

For some definition of "ideal", yes.  But there are downsides as well.


        Stefan




  reply	other threads:[~2019-04-09  1:39 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-19 13:24 GNU ELPA package for CC-mode Stefan Monnier
2018-08-19 20:49 ` Alan Mackenzie
2018-08-19 23:45   ` Stefan Monnier
2018-08-20  8:24     ` Jostein Kjønigsen
2018-08-20 14:06       ` Stefan Monnier
2018-08-20 17:58         ` Jostein Kjønigsen
2018-08-21 13:30           ` Stefan Monnier
2018-08-21 16:20     ` Alan Mackenzie
2018-08-23  5:25       ` Stefan Monnier
2018-08-23 21:34         ` Alan Mackenzie
2018-08-23 22:17           ` Stefan Monnier
2018-08-24  8:43             ` Eli Zaretskii
2018-08-24 11:56               ` Michael Albinus
2018-08-24 22:21                 ` Stefan Monnier
2018-08-25  8:43                   ` Tramp as ELPA package (was: GNU ELPA package for CC-mode) Michael Albinus
2018-08-25 18:04                     ` Tramp as ELPA package Stefan Monnier
2018-08-25 21:04                       ` Stefan Monnier
2018-08-26  6:39                         ` Andreas Schwab
2018-08-26 10:48                           ` Michael Albinus
2018-08-26 11:09                         ` Michael Albinus
2018-08-26 15:21                           ` Stefan Monnier
2018-08-26 18:04                             ` Michael Albinus
2018-08-26 18:27                               ` Eli Zaretskii
2018-08-26 18:34                                 ` Michael Albinus
2018-08-26 19:03                                   ` Eli Zaretskii
2018-08-27  7:12                                     ` Michael Albinus
2018-08-27 13:33                                       ` Stefan Monnier
2018-08-27 13:41                                         ` Michael Albinus
2018-08-27 13:44                                           ` Stefan Monnier
2018-08-27 15:22                                             ` Michael Albinus
2018-08-27 15:09                                       ` Eli Zaretskii
2018-08-27 15:21                                         ` Michael Albinus
2018-08-26 15:30                           ` Tom Tromey
2018-08-26 16:26                             ` Stefan Monnier
2018-08-26 17:46                             ` Michael Albinus
2019-04-04 12:41                           ` Michael Albinus
2019-04-04 15:48                             ` Stefan Monnier
2019-04-04 16:07                               ` Michael Albinus
2019-04-05 14:43                               ` Michael Albinus
2019-04-05 15:07                                 ` Dmitry Gutov
2019-04-05 16:19                                   ` Michael Albinus
2019-04-16  7:53                                     ` Steinar Bang
2019-04-05 18:14                                 ` Stephen Leake
2019-04-05 18:20                                   ` Stephen Leake
2019-04-05 22:18                                     ` Michael Albinus
2019-04-07  0:17                                       ` Stephen Leake
2019-04-07  7:41                                         ` Michael Albinus
2019-04-06 12:42                                 ` Stefan Monnier
2019-04-08 12:37                                   ` Michael Albinus
2019-04-08 13:07                                     ` Stefan Monnier
2019-04-08 13:31                                       ` Michael Albinus
2019-04-08 16:43                                         ` Stefan Monnier
2019-05-20 13:05                                       ` Michael Albinus
2019-06-30 19:20                                         ` Michael Albinus
2019-04-05 18:55                               ` Achim Gratz
2019-04-06 22:25                                 ` GNU ELPA and package.el (was: Tramp as ELPA package) Stefan Monnier
2019-04-07  7:17                                   ` GNU ELPA and package.el Achim Gratz
2019-04-07 14:07                                     ` Stefan Monnier
2019-04-07 17:37                                       ` Achim Gratz
2019-04-07 20:31                                         ` Stefan Monnier
2019-04-08 17:55                                           ` Achim Gratz
2019-04-08 19:01                                             ` Stefan Monnier
2019-04-08 20:24                                               ` Achim Gratz
2019-04-09  1:39                                                 ` Stefan Monnier [this message]
2018-08-25 19:15                   ` GNU ELPA package for CC-mode Clément Pit-Claudel
2018-08-25 20:17                     ` Stefan Monnier
2018-08-25 21:17                       ` Tom Tromey
2018-08-25 23:28                         ` Kyle Andrews
2018-08-24 15:48               ` Stefan Monnier
2018-08-24 19:21                 ` Eli Zaretskii
2018-08-24 22:17               ` Stefan Monnier
2018-08-25  7:02                 ` Eli Zaretskii
2018-08-25  8:51                 ` Alan Mackenzie
2018-08-25 10:15                   ` Michael Albinus
2018-08-25 18:07                   ` Stefan Monnier
2018-08-25 18:27                     ` Eli Zaretskii

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=jwvlg0kw3zm.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).