Subject: bug#42316: 28.0.50; package.el has trouble reloading and activating GNU ELPA :core packages

From: João Távora <[email-masked]>
Date: Fri, 10 Jul 2020 22:50:26 +0100

Stefan Monnier <[email-masked]> writes:

>> 1. when you `package-install` the new eldoc 1.2.0 package in Emacs 26.3
>>    for the first time, it just compiles it, it doesn't load it.  We had
>>    witnessed this with Flymake too, remember?
>
> `package-install` is not supposed to "load" the package (it installs
> it, activates it, and compiles it).  But yes, it is also supposed to
> *reload* already loaded files (right before compiling), so it looks like
> there might be a bug somewhere.
>
> You might want to trace through `package--load-files-for-activation` to
> see why eldoc.el is not reloaded even though it should be in
> `load-history`.
>
>> 2. When you shut down that Emacs session, start it again, run
>>    package-initialize, you _still_ don't have the new eldoc.el file
>>    (1.2.0) loaded.  This is only for eldoc.el, flymake.el works
>>    correctly in this use case.
>
> Yes, this is because it's preloaded in Emacs, so when package.el comes
> to activate the package, the autoloads in `eldoc-autoloads.el` won't have any
> effect because all its functions are already defined (since `eldoc.el`
> is already loaded).
>
> This is not a really bug in package.el but arguably a missing feature,
> indeed.  When `package-activate-all` is called, it should probably
> reload all packages that were already loaded before (when the version
> already loaded is different from the one that's just been activated).

Sounds reasonable.  But can these changes ever reach Emacs 26.3?  How?
Only by updating package.el itself, right?  Is that possible?

I'm afraid I don't have time to do either of those things, right now, so
I'm just going to hack it in Eglot, for now.  But I'm also reporting
this as a bug, so we can track it.

João