From: Dmitry Gutov <dmitry@gutov.dev>
To: "João Távora" <joaotavora@gmail.com>
Cc: Eli Zaretskii <eliz@gnu.org>,
arne_bab@web.de, jporterbugs@gmail.com,
emacs-devel <emacs-devel@gnu.org>
Subject: Re: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot)
Date: Thu, 20 Apr 2023 01:06:10 +0300 [thread overview]
Message-ID: <e3408f6b-f050-a96d-c8c6-5f790cc90df4@gutov.dev> (raw)
In-Reply-To: <CALDnm52=KRVBn3Zse2DDC-SMHGot0mRpYUEZ7FH5vmAVH4Rimw@mail.gmail.com>
On 19/04/2023 23:57, João Távora wrote:
> On Wed, Apr 19, 2023 at 9:50 PM Dmitry Gutov<dmitry@gutov.dev> wrote:
>
>> So... are you sure that (use-package 'eglot :ensure t) upgrades/upgraded
>> the package?
>>
>> From what I'm reading in use-package-ensure-elpa, all 'package-install'
>> calls are wrapped in
>>
>> (unless (package-installed-p package)
>> ...
>>
>> That seems to mean that, as long as the package is installed already
>> (whether by being bundled, or because of a previous manual
>> installation), it shouldn't get upgraded when this form is executed.
> That's true. Exactly the same as package-install. It will not
> reinstall over another one.
OK then, I think have to re-evaluate my position on this. Previously, I
guess, I made some hasty conclusions from how the discussion went on
without refreshing the exact details about package.el and use-package
(the latter I never knew to begin with). Apologies.
Eli, let me know if we should take this back to the bug tracker instead.
> 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.
I think one of the conclusions to be made here is that even if
(package-install 'eglot) now installs the newest version of Eglot in
Emacs 29,
(use-package 'eglot :ensure t)
still won't do that in Emacs 29 because (package-installed-p 'eglot)
returns t still. So the commit 580d8278c5f48 doesn't help with your
"most common upgrade method" cited below, if they rely on use-package
instead of calling 'package-install' directly.
The patch I +1'd here https://debbugs.gnu.org/62720#467 wouldn't help
with (use-package 'eglot :ensure t) either, IIUC.
But it would help in case the user put (package-install 'eglot) inside
their init script, or if the CI script contains that. But the CI scripts
could be fixed anyway (there must be a lot fewer of them out there than
there are user installations).
Next: 'package-install' isn't supposed to install a new version when
some version is already installed. The docstring says so, and I just
tried this out: had older 'vertico' installed (with a newer one
available in the repo), evaluated (package-install 'vertico), got back
the message "already installed".
Do we want to change the semantics of 'package-install' just so the
(minor) fraction of users who call this function directly will get Eglot
upgraded when starting over from an empty config with Emacs 29? And/or
change (package-installed-p 'eglot) to return nil when the appropriate
user option is set? I'm not sure that's wise, certainly not the latter.
> 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).
I've never considered this particular scenario, but as explained above,
it's still not "fixed" by either of the proposed approaches. Not
entirely, at least.
The most common upgrade method, though, is hopefully
'package-menu-mark-upgrades'. Or:
M-x list-packages
U
x
And that one also doesn't work for Eglot and other builtin packages.
Unlike 'package-install', this behavior is not obviously correct,
although it's "always been like this" so we're probably not going to
change what it does by default at this point in time.
Another function which is supposed to upgrade packages in 'M-x
package-update' (why aren't people commenting on bug#62750? the naming's
gonna drive me crazy). This one is obviously incorrect because upgrades
exist for Eglot, and yet it doesn't suggest any.
So I would suggest to focus on functions that don't work as intended.
Namely:
- Add a user option for the list of builtin packages which would be
upgraded automatically by 'package-menu-mark-upgrades' and 'M-x
package-upgrade-all' (nee package-update-all). Maybe make it nil by
default, or maybe add 'eglot' to it. I don't have a strong opinion.
- Fix 'M-x package-upgrade' (nee package-update) to suggest Eglot as one
of the options and actually perform the upgrade. That shouldn't require
changes to 'package-install' because, as we already know, the user can
already install a newer version of Eglot using the 'list-packages' menu
(and picking the exact version manually). That execution path is going
to go through 'package-install' as well, so it must be suitable already.
- Revert 580d8278c5f48 because it creates odd semantics (upgrading
certain packages that are already installed but not others) and it
doesn't solve the issue with (use-package 'eglot :ensure t) anyway. We
could keep it, but seems like a half-measure that didn't make anyone
happy anyway. OTOH, it could minimize the rewrites of CI scripts.
next prev parent reply other threads:[~2023-04-19 22:06 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <87a5zj2vfo.fsf@gmail.com>
[not found] ` <83wn2h5825.fsf@gnu.org>
[not found] ` <87wn2gkhzr.fsf@posteo.net>
[not found] ` <83cz485oxi.fsf@gnu.org>
[not found] ` <87leiwdyff.fsf@posteo.net>
[not found] ` <834jpk5hih.fsf@gnu.org>
[not found] ` <871qkom3fj.fsf@posteo.net>
[not found] ` <83mt3b4yfc.fsf@gnu.org>
[not found] ` <87edonlsxi.fsf@posteo.net>
[not found] ` <83jzyf4vzb.fsf@gnu.org>
[not found] ` <871qknllkj.fsf@posteo.net>
[not found] ` <83fs934pjf.fsf@gnu.org>
[not found] ` <87wn2fk47y.fsf@posteo.net>
[not found] ` <83sfd2g2ek.fsf@gnu.org>
[not found] ` <875y9yfxrr.fsf@gmail.com>
[not found] ` <CALDnm50-Su4SAGDSBiLjt0yrjrVsvyW71NSMi=zt7uHgv7rdng@mail.gmail.com>
[not found] ` <87y1muefks.fsf@gmail.com>
[not found] ` <CALDnm50b6hRu+4EFqQDVydOF07HdiZT4nHA=aLDjYQKtMBTk2Q@mail.gmail.com>
[not found] ` <fc2ed4a0-2368-682d-e34d-5cf94ac261fc@gutov.dev>
[not found] ` <CALDnm527Avsa-MBTD-bvRqOn52AeBLfPvffxjL-NB3tqM=43ZQ@mail.gmail.com>
[not found] ` <834jpifizy.fsf@gnu.org>
[not found] ` <CALDnm53X5Yyn_EitG+iHJVx=RO2hjNaWkrgPz0+jKVWVM=eEBQ@mail.gmail.com>
[not found] ` <83y1mue1qi.fsf@gnu.org>
[not found] ` <CALDnm51hmRMxstQdZdstA2LrbvYw=zD5=XRVy6uCU=Z+OmONRg@mail.gmail.com>
[not found] ` <83sfd2e01f.fsf@gnu.org>
[not found] ` <1a5e5837-513b-84d8-3260-cdbf42b71267@gutov.dev>
[not found] ` <83sfcz9rf2.fsf@gnu.org>
[not found] ` <09a49ab9-ac72-36a9-3e68-9c633710eba7@gutov.dev>
2023-04-18 12:57 ` Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot) Eli Zaretskii
2023-04-18 14:02 ` João Távora
2023-04-18 14:47 ` Eli Zaretskii
2023-04-18 15:45 ` João Távora
2023-04-18 16:19 ` Eli Zaretskii
2023-04-18 17:49 ` João Távora
2023-04-18 21:19 ` Dmitry Gutov
2023-04-18 18:56 ` Jim Porter
2023-04-18 19:21 ` Eli Zaretskii
2023-04-18 19:36 ` Jim Porter
2023-04-19 11:55 ` Eli Zaretskii
2023-04-19 8:50 ` João Távora
2023-04-19 12:13 ` Dr. Arne Babenhauserheide
2023-04-19 17:03 ` Eli Zaretskii
2023-04-19 17:21 ` João Távora
2023-04-19 18:07 ` Eli Zaretskii
2023-04-19 18:14 ` Dmitry Gutov
2023-04-19 18:32 ` Eli Zaretskii
2023-04-19 19:33 ` João Távora
2023-04-20 4:26 ` tomas
2023-04-19 19:39 ` Dmitry Gutov
2023-04-19 19:46 ` João Távora
2023-04-19 20:50 ` Dmitry Gutov
2023-04-19 20:57 ` João Távora
2023-04-19 21:58 ` Jim Porter
2023-04-19 22:29 ` João Távora
2023-04-19 22:42 ` Jim Porter
2023-04-19 22:58 ` João Távora
2023-04-19 22:06 ` Dmitry Gutov [this message]
2023-04-19 22:21 ` Jim Porter
2023-04-19 22:27 ` Dmitry Gutov
2023-04-19 22:43 ` Jim Porter
[not found] ` <f32d7008-ea39-a9d7-8224-2c5b969236b7@gutov.dev>
[not found] ` <CALDnm53vPnODxpv_=nvOHRjLX-PfhyTS0MFudR0qZ3Pa-Lw-AQ@mail.gmail.com>
2023-04-19 23:25 ` Dmitry Gutov
2023-04-20 0:13 ` João Távora
2023-04-20 1:13 ` Dmitry Gutov
2023-04-20 1:49 ` João Távora
2023-04-20 2:04 ` Dmitry Gutov
2023-04-19 19:15 ` João Távora
2023-04-20 9:38 ` Eli Zaretskii
2023-04-20 9:48 ` João Távora
2023-04-20 11:47 ` Eli Zaretskii
2023-04-20 12:00 ` João Távora
2023-04-20 12:16 ` Eli Zaretskii
2023-04-20 12:24 ` João Távora
2023-04-19 17:35 ` John Yates
2023-04-19 17:42 ` João Távora
2023-04-19 18:02 ` Eli Zaretskii
2023-04-19 18:04 ` Jim Porter
2023-04-19 18:34 ` Eli Zaretskii
2023-04-19 19:35 ` Jim Porter
2023-04-20 9:49 ` Eli Zaretskii
2023-04-19 19:40 ` Dr. Arne Babenhauserheide
2023-04-20 6:02 ` Eli Zaretskii
2023-04-29 5:21 ` Stability of core packages emacs
2023-04-29 6:26 ` Eli Zaretskii
2023-04-29 21:47 ` Mohsen BANAN
2023-04-30 6:21 ` Eli Zaretskii
2023-04-30 9:07 ` Philip Kaludercic
2023-04-30 13:12 ` Corwin Brust
2023-05-07 5:58 ` Mohsen BANAN
2023-05-05 4:36 ` David Masterson
2023-05-05 4:56 ` David Masterson
[not found] ` <878re3bdj6.fsf@penguin>
2023-05-05 4:59 ` David Masterson
2023-04-19 12:55 ` Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot) Eli Zaretskii
2023-04-19 13:18 ` João Távora
2023-04-19 13:44 ` Eli Zaretskii
2023-04-19 14:13 ` João Távora
2023-04-18 22:10 ` Dmitry Gutov
2023-04-19 8:34 ` João Távora
2023-04-19 12:47 ` Eli Zaretskii
2023-04-19 18:22 ` Jim Porter
2023-04-19 18:37 ` Eli Zaretskii
2023-04-19 19:32 ` Jim Porter
2023-04-19 22:51 ` Lynn Winebarger
2023-04-20 13:47 ` history of ELPA packages and dependencies (was: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot)) Lynn Winebarger
2023-04-20 13:58 ` Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot) Lynn Winebarger
2023-04-19 19:25 ` Dmitry Gutov
2023-04-19 19:40 ` João Távora
2023-04-20 9:47 ` Eli Zaretskii
2023-04-20 13:03 ` Dmitry Gutov
2023-04-20 14:03 ` Eli Zaretskii
2023-04-20 14:22 ` Dmitry Gutov
2023-04-20 14:42 ` Eli Zaretskii
2023-04-20 15:30 ` Dmitry Gutov
2023-04-20 15:49 ` Eli Zaretskii
2023-04-20 17:26 ` Stability of core packages Philip Kaludercic
2023-04-20 18:46 ` Eli Zaretskii
2023-04-20 21:25 ` Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot) Dmitry Gutov
2023-04-21 14:12 ` Lynn Winebarger
2023-04-19 12:31 ` What is :core? (was: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot)) Lynn Winebarger
2023-04-19 12:57 ` João Távora
2023-04-19 13:03 ` 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=e3408f6b-f050-a96d-c8c6-5f790cc90df4@gutov.dev \
--to=dmitry@gutov.dev \
--cc=arne_bab@web.de \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=joaotavora@gmail.com \
--cc=jporterbugs@gmail.com \
/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).