emacs-devel
[Top][All Lists]
Advanced

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

Re: Stability of core packages (was: Not easy at all to upgrade :core pa


From: Jim Porter
Subject: Re: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot)
Date: Wed, 19 Apr 2023 14:58:40 -0700

On 4/19/2023 1:57 PM, João Távora wrote:
But that doesn't change anything.  In Emacs 26/27/28 from scratch
package-install and use-package _will_ rev up Eglot to whatever is the
newest version.  In Emacs 29 it won't.

But in that case, the user simply ends up with, at best, whatever version of Eglot was current at the time they ran Emacs with their config for the first time on that machine. The status quo is already that users are likely on an older version of Eglot, unless they wipe their elpa/ directory regularly (which seems an awkward way to update your packages to me).

In fact deleting Eglot and restarting Emacs the config run again is what
I suppose the most common upgrade method (since there is no
package-update in Emacs 28).

As mentioned elsewhere in this thread, I just use the *Packages* buffer and 'package-menu-mark-upgrades' (bound to "U"). That works on older Emacsen too. In 29, 'package-update' would make it easier to update a single package though, and 'package-update-all' provides a programmatic way to do what I do interactively in 28.

(Though now I wonder why we use both "update" and "upgrade"...)

Other than that, think CI scripts, dockerfiles, VMs, or just the
casual user who trashes the packages dir to get a fresh set when
looking for a bug (like I do, and multiple people I've interacted with).

If a user hasn't done anything to specify the release channel they want, then I think the current behavior is correct. "(package-install 'eglot)" just means "make sure I have Eglot". However, if the user pinned Eglot to GNU ELPA, I think it would make some sense for 'package-install' to install Eglot from GNU ELPA (i.e. it now means "make sure I have Eglot *from GNU ELPA*").

I know this isn't automatic; a user would need to pin Eglot to GNU ELPA to get this behavior, but it's fairly easy to do. use-package already supports pinning as well. We'd just need to tweak 'package-install' and 'use-package :ensure' to handle pinning as described above.



reply via email to

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